Tableau et verification si c'est un repertoire ou pas !

Résolu
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 8 févr. 2006 à 09:52
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 - 8 févr. 2006 à 12:52
Bonjour a tous,

J'ai une application console ou je viens coller depuis une application windows un path en faisant un drag and drop !

je decompose ma chaine afin d'enlever les \ et autres " !

Ensuite je parcourre ma chaine et j'aimerais tester si c'est un repertoire ou un fichier mais cela ne va pas ma boucle s'arrete sur le premier element du tableau ! et je ne vois pas pourquoi !

voila ce que j'ai fait :


Console.WriteLine("Entrez votre chaine ?");



string chaine = Console.ReadLine();



char[] bad = {'"', '\\'};



string[] tableau = chaine.Split(bad);



int nb = tableau.Length;


Console.WriteLine("Nombre d'elements "+ nb);



for(
int i = 0; i< tableau.Length; i++)


{



if(tableau[i] !="")


{


DirectoryInfo isDir =
new DirectoryInfo(tableau[i]);



if(isDir.Exists)


Console.WriteLine("Element " + i +" "+ tableau[i]);


}


}

Si quelqu'un voye comment je peux faire pour arriver a tester sur une chaine (path) decompose si c'est un repertoire ou un fichier je suis preneur !

Bonne semaine ...
Christophe

9 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
8 févr. 2006 à 10:43
pourquoi ne pas faire tout simplement :

File.Exists() ou Directory.Exists() ?


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
3
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2006 à 12:17
Ce qu'on voulait dire, c'est que si tu as ce genre de chemin

C:\unrep\unautrerep\lerepvisé
ou
C:\unrep\lefichiervisé.dat

"unrep" et "unautrerep" sont forcement des répertoires, donc pas la peine de tout vérifier.

/*
coq
MVP Visual C#
*/
3
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2006 à 10:47
Salut,

Je n'ai pas vraiment compris le cheminement du code mais :
- pour les caractères invalides d'un path, utilise Path.InvalidPathChars plutôt que ton propre tableau.
- pour savoir si il s'agit d'un répertoire ou d'un fichier, tu peux te servir de Path.GetFileName qui va retourner string.Empty si le chemin d'accès testé est celui d'un répertoire et non d'un fichier.

/*
coq
MVP Visual C#
*/
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
8 févr. 2006 à 10:55
oui aussi :)

il est fort ce coq... un maitre :p


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 févr. 2006 à 11:02
lol

/*
coq
MVP Visual C#
*/
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
8 févr. 2006 à 11:20
hello,

Oui vous etez tres fort certes !

en gros voila ce que j'obtiens qd je drap en drop le chemin ds l'"application console !

"C:\Documents and Settings\All Users\Start Menu"

je supprime les " et les \

j'affiche donc

c:
documents and settings

etc...

je voudrais pouvoir a chaque tour de boucle verifier si c'est un repertoire !
mais ca ne va pas !
il s'arrete apres le premier elements teste par du tableau


if(tableau[i] !="")


{


DirectoryInfo isDir =
new DirectoryInfo(tableau[i]);



if(isDir.Exists)


Console.WriteLine("Element " + i +" "+ tableau[i]);


}

Je pense que je vasi devoir revoir mon code et faire comme ceci !

supprimer juste les "

et a chaque tour de bloucle concatener la racine donc c:\ avec le dossier ou fichier suivant !

Non !

Qu'en pensez vous !?

Je vous remercie deja pour votre rapidite et votre savoir ;-) !

Christophe
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
8 févr. 2006 à 11:30
hum... pourquoi décomposer alors qu'il suffit d'utiliser le path complet ???


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
8 févr. 2006 à 11:55
re,
Je veux absolument teste si chaque chaine avant ou apres le \ est un repertoire et recupere le dernier repertoire !

voila ce que j'ai fait !

Bon je suis pas programmeur !
mais ca tourne jusqu'a maintenant !


Console.WriteLine("Entrez votre chaine ?");



string chaine = Console.ReadLine();



char[] bad = {'"','\\'};



string[] tableau = chaine.Split(bad);



int nb = tableau.Length;


Console.WriteLine("Nombre d'elements "+ nb);



string valeur =
string.Empty;



int j = 0;



for(
int i=0; i<tableau.Length;i++)


{



//Console.WriteLine(tableau[i]);



if(tableau[i] !="")


{


valeur += tableau[i];


valeur+="\";


DirectoryInfo info =
new DirectoryInfo(valeur);



if(info.Exists)


{


j++;


Console.WriteLine("Ok "+ i +" "+valeur);


Console.WriteLine(tableau[j]);


}


}


}

Qu'en penses vous ?

Merci

Christophe
0
cs_jimmy69 Messages postés 778 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 27 novembre 2008 1
8 févr. 2006 à 12:52
Ouais j'ai pris le probleme a l'envers je pense :-( !

En tout cas merci a vous deux pour votre savoir !

Bonne semaine

Christophe
0
Rejoignez-nous