Recherche d'un repertoire

Résolu
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007
-
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007
-
Salut!
En fait j'ai déjà lu pas-mal de chose sur le forum à ce sujet, et je suis désolé si j'ai raté la réponse à ma question.
Je cherche à répertorier tous les dossier nommé "Mon Dossier" qui pourraient être présents sur mon ordinateur.
La raison pour laquelle je fais ça est en fait pour permettre à des clients néophites de retrouver le chemin du répertoire d'un de mes programmes automatiquement (ou du moins de trouver tous les dossier du bon nom et qu'ils n'aient plus qu'à sélectionner dans une lisge).
Donc, j'utilise la classe Directory et la methode GetDirectories avec la SearchOption.AllDirectories qui permet d'explorer tous les dossier et sous-dossiers.
Problème: certain dossier ne sont pas accessible pour des raisons de droits (par exemple dans le Documents And Settings) et malheureusement, la méthode s'arrête directement et ne continue pas en négligent simplement ce dossier.
Donc, comment faire? méthode récursive avec la méthode GetDirectories dossier par dossier??

Ensuite, j'aimerais stocker les résultats dans une structure données générique. Dans Java j'utilisais:
ArrayList<string> maListe = new ArrayList<String>(10);
et ensuite:
myListe.add("monTest");
Mais dans c# ça n'a pas l'air de marcher...
Comment faut-il faire??

7 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
il faut ajouter le using suivant :

using System.Collections.Generics;

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
pour la liste générique, en C#, on fait comme ceci :

List<string> maListe = new List<string>();

pour ton souci des parcours de répertoire, tu n'as pas d'autres choix que de parcourir récurvisement tous les répertoires... (attention, ca peut être très long).

Parmis mes sources, celle-ci fait un parcours de répertoire en asynchrone :
http://www.csharpfr.com/codes/MAFTOOLS-COPIE-SITE-INTERNET-VUE-DEPLOIEMENT_36806.aspx

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007

Ok merci pour le truc des répertoire je vais chercher là-dedans, mais pour le truc de la liste, je sais pas pourquoi mais quand j'entre
List<string> maListe = new List<string>();
et ensuite
par exemple maList. , le menu contextuel n'apparaît pas avec toutes les méthodes possible.
C'est normal??
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007

j'utilise Visual Studio 2005 Express Edition si jamais...
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007

ok merci ça marche pour les structures de données.

ton code est génial mais les problème c'est qu'il cherche fichier par fichier or, moi je ne veux chercher que les répertoire.

Ca abbrègera peut-être un peu le temps.
Bon je vais mettre une combo-box pour que l'utilisateur sélectionne au moin le lecteur, ça abbrègera.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
dsl... j'ai oublié de répondre...

le fait qu'il recherche les fichiers plutot que les répertoires n'est pas grave... change juste le GetFiles en GetDirectories ;)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
109
Date d'inscription
dimanche 23 décembre 2001
Statut
Membre
Dernière intervention
26 octobre 2007

oui ok.
J'ai réussi avec une méthode récursive faite maison... pas de problème ça marche niquel merci.