Tableau et verification si c'est un repertoire ou pas ! [Résolu]

cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 8 févr. 2006 à 09:52 - Dernière réponse : cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention
- 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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 8 févr. 2006 à 10:43
3
Merci
pourquoi ne pas faire tout simplement :

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


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

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 122 internautes ce mois-ci

Commenter la réponse de sebmafate
Meilleure réponse
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 févr. 2006 à 12:17
3
Merci
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#
*/

Merci cs_coq 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 122 internautes ce mois-ci

Commenter la réponse de cs_coq
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 févr. 2006 à 10:47
0
Merci
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#
*/
Commenter la réponse de cs_coq
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 8 févr. 2006 à 10:55
0
Merci
oui aussi :)

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


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 8 févr. 2006 à 11:02
0
Merci
lol

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 8 févr. 2006 à 11:20
0
Merci
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
Commenter la réponse de cs_jimmy69
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 8 févr. 2006 à 11:30
0
Merci
hum... pourquoi décomposer alors qu'il suffit d'utiliser le path complet ???


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 8 févr. 2006 à 11:55
0
Merci
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
Commenter la réponse de cs_jimmy69
cs_jimmy69 787 Messages postés dimanche 22 décembre 2002Date d'inscription 27 novembre 2008 Dernière intervention - 8 févr. 2006 à 12:52
0
Merci
Ouais j'ai pris le probleme a l'envers je pense :-( !

En tout cas merci a vous deux pour votre savoir !

Bonne semaine

Christophe
Commenter la réponse de cs_jimmy69

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.