Bonjour,
Afin de faire le décompte de fichiers présents dans un répertoire et ses sous répertoires, j'ai écrit une petite méthode qui parcours les dossiers en comptabilisant les fichiers qu'ils contiennent. Le problème est que cette méthode me renvoie un mauvais résultat.
En effet, après avoir parcouru toute l'arborescence des dossiers, il se passe quelque chose que je n'arrive pas à comprendre. En mode debug, je vois bien que la méthode arrive bien à l'instruction return avec le bon décompte de fichiers (sous-répertoires inclus), mais avant de quitter définitivement cette dernière pour me renvoyer ce bon décompte, elle refait un tour dans boucle foreach me renvoyant finalement le décompte de fichiers contenus uniquement dans le répertoire de départ !!?? :
Quelqu'un pourrait-il m'expliquer pourquoi et me dire comment résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 int filesCount = CountFilesRecursifDossier(@"c:\mondossier",0); public static int CountFilesRecursifDossier(string path, int result) { if (Directory.Exists(path)) { result += Directory.GetFiles(path).Length; foreach (string directory in Directory.GetDirectories(path)) CountFilesRecursifDossier(directory, result); } return result; }
Merci d'avance pour vos réponses.
Partager