Voila juste un petit tuto pour lister tous les fichiers d'un dossier (et ses sous-dossiers).
Moi ça fait 3 jours que j'ai commencé le C# et il n'y en avait pas de commenté, donc j'ai fais le mien.
///////////////////////////// // Lister tous les fichiers d'un dossier (et ses sous-dossiers) : // // 'allFiles' est ma StringCollection contenant la liste complete de tous les fichiers // Pourquoi une StringCollection ? Parce que les tableaux ont une taille fixe et // utiliser une StringCollection est le seul moyen de lister tous les fichiers de // dossiers et sous-dossiers. // (Merci à Bidou !) // // 'path' le dossier sélectionné // // 'ext' la liste des extensions pour filtrer les fichiers listés // // 'scanDirOk' un boolean me permettant d'accepter les scans des sous-dossiers // public StringCollection listAllFiles(StringCollection allFiles, string path, string ext, bool scanDirOk) { // listFilesCurrDir : Tableau contenant la liste des fichiers du dossier 'path' string[] listFilesCurrDir = Directory.GetFiles(path, ext); // On lit le tableau 'listFilesCurrDir' foreach (string rowFile in listFilesCurrDir) { // Si le fichier n'est pas deja dans la liste 'allFiles' if (allFiles.Contains(rowFile) == false) { // On ajoute le fichier (du moins son adresse) a 'allFiles' allFiles.Add(rowFile); } } // Vide la table 'listFilesCurrDir'pour la prochaine liste de sous-dossiers listFilesCurrDir = null; // Si on autorise la lecture des sous-dossiers if (scanDirOk) { // On liste tous les sous-dossiers présents dans le 'path' string[] listDirCurrDir = Directory.GetDirectories(path); // Si il existe des sous-dossiers (si la liste n'est pas vide) if (listDirCurrDir.Length != 0) { // On lit le tableau 'listDirCurrDir' foreach (string rowDir in listDirCurrDir) { // On relance la procédure pour qu'elle scanne chaque sous-dossier listAllFiles(allFiles, rowDir, ext, scanDirOk); } } // Vide la table 'listDirCurrDir'pour la prochaine liste de sous-dossiers listDirCurrDir = null; } // On retourne 'allFiles' return allFiles; }
Voilà !