FileInfo exists avec nom partiel ? [Résolu]

Signaler
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010
-
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010
-
Bonjour,
J'ai besoin d'analyser l'existance d'un fichier sur un dossier de la manière suivante :
Par exemple, je dois savoir si le nom d'un fichier contient "VO009618
"
le fichier existant à pour nom "VOWPC999_VO009618_16.jpg". Mais au départ je ne connais pas son nom entièrement.

Et si ce fichier existe je dois récupérer son nom entièrement.

Actuellement je parviens à trouver l'existance d'un fichier dont je connais le nom exacte mais pas partiellement!

Voici mon code pour le fichier exacte:


Dim fic As String = Server.MapPath("images/" & "VOWPC999_VO009618_16.jpg")

'Dim fic As String = Server.MapPath("images/" & "*VO009618_*.jpg")
Dim Fi
As FileInfo
'On déclare un FileInfo
Fi =
New FileInfo(fic)
'on instance ce FileInfo avec comme paramètre le nom du fichier
If Fi.Exists
Then
Label1.Text = Fi.Exists.ToString

Else
Label1.Text = Fi.Exists.ToString

End
If

Thierry

2 réponses

Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

Ok j'ai trouvé cette solution : (merci pour votre réponse)

Public
Sub RecupImg()

Dim rep
As
String = "c:\inetpub\wwwroot\auto-besancon\images"

Dim fic
As
String = "*_VO009618_*.jpg"

Dim MyFile
As
String
MyFile = Dir(rep & fic)

If MyFile.Trim <> ""
Then
Label1.Text = MyFile

Else
Label1.Text = MyFile

End
If

Thierry
Messages postés
66
Date d'inscription
lundi 27 juin 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
Bon, j'ai pas testé, il doit y avoir des petites erreurs et je ne peux pas te le faire en vb vu que le c# me vient plus facilement à l'esprit, je risque de tout mélanger. Alors voila en c# ce que je ferais à peu près en espérant que ca te donnera des idées:

System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(Server.MapPath("nomdirectory"));
foreach (System.IO.FileInfo fi in di.GetFiles())
{
string recupnom="";
string atrouver="test";
string delimStr = "_";
char[] delimiter = delimStr.ToCharArray();
if (fi.Extension == ".jpg")
{
string[] split = null;
split = Path.GetFileNameWithoutExtension(fi.FullName).Split(delimiter, 5);
for (int i=0;i<5;i++){
if (split[i] != null){
if(atrouver == split[i].ToString())
{
recupnom = Path.GetFileNameWithoutExtension(fi.FullName);
}
}
}
}

Ce code est pensé en sachant que ton nom de fichier comportera ton string recherché entre _ _ si tu dois analyser chaque lettre tu peux faire une boucle sur un "filename.Substring(0, 5)" qui dans cet exemple prendre les lettres de 0 à 5.

J'espère que ca pourra te mettre sur la piste et que il n'y a pas trop de choses qui n'existent pas en vb dans le code ci dessus.