2009-08-05 9 views
6

Je dois déterminer le nombre de fichiers/sous-répertoires dans un répertoire. Peu m'importe quels fichiers/répertoires sont réellement dans ce répertoire. Y at-il un moyen plus efficace que d'utiliserDéterminer le nombre de fichiers dans un répertoire

_directoryInfo.GetDirectories().Length + 
_directoryInfo.GetFiles().Length 

Merci.

+0

double: http://stackoverflow.com/questions/1192951/quicker-quickest-way-to-get-number-of-files-in-a-directory-with-over-200-000 -f http://stackoverflow.com/questions/349251/how-do-i-find-out-how-many-files-are-in-a-directory – JohnFx

Répondre

13

C'est probablement aussi bon qu'il obtient, mais vous devez utiliser GetFileSystemInfos() au lieu qui vous donnera les deux fichiers et répertoires:

_directoryInfo.GetFileSystemInfos().Length 
+0

Je vais essayer ça. Merci. – Mav3rick

2
string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 

puis prendre seulement la taille du tableau Chemin de fichiers

code de: C#-Examples

+0

Sean Brights réponse fonctionne probablement mieux pour votre code –

2

Vous pouvez utiliser la méthode GetFileSystemEntries trouvée dans le Directory puis interrogez le Length du tableau d'éléments renvoyés.

1
DirectoryInfo d = new DirectoryInfo(@"C:\MyDirectory\"); 
FileInfo[] files = d.GetFiles("*.*"); 

int NumberOfFilesInDir; 

foreach(FileInfo file in files) 
{ 
    NumberOfFilesInDir++; 
} 
+0

Pourquoi ne pas simplement faire des fichiers.Longueur? –

+1

Je suis un programmeur autodidacte et je n'ai jamais utilisé cette méthode auparavant. Je n'essayais pas d'insinuer que la réponse originale n'était pas bonne, je proposais simplement une autre façon ... :-) –

Questions connexes