Introduction
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à !