2009-08-05 32 views
6

Necesito determinar el número de archivos/subdirectorios en un directorio. No me importa qué archivos/directorios están realmente en ese directorio. ¿Hay una manera más eficiente que usarDeterminar el número de archivos en un directorio

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

Gracias.

+0

duplicado: 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

Respuesta

13

Eso es probablemente tan bueno como se pone, pero se debe utilizar GetFileSystemInfos() lugar que le dará ambos archivos y directorios:

_directoryInfo.GetFileSystemInfos().Length 
+0

Voy a intentar eso. Gracias. – Mav3rick

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

luego tomar el tamaño de la matriz de rutas de los archivos

código de: C#-Examples

+0

La respuesta de Sean Brights probablemente funciona mejor para su código –

2

Puede utilizar el método GetFileSystemEntries que se encuentra en el Directory clase y luego consultar el Length de la matriz de elementos devueltos.

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

int NumberOfFilesInDir; 

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

¿Por qué no solo archivos? ¿Longitud? –

+1

Soy un programador autodidacta y no lo he usado antes. No estaba tratando de dar a entender que la respuesta original no era buena, simplemente estaba ofreciendo otra forma ... :-) –

Cuestiones relacionadas