¿Hay alguna manera de encontrar el número de archivos de un tipo específico sin tener que recorrer todos los resultados en un Directory.GetFiles() o método similar? Busco algo como esto:Buscar el número de archivos con una extensión específica, en todos los subdirectorios
int ComponentCount = MagicFindFileCount(@"c:\windows\system32", "*.dll");
sé que puedo hacer una función recursiva para llamar Directory.GetFiles, pero sería mucho más limpio si podía hacer esto sin toda la iteración.
EDITAR: Si no es posible hacer esto sin recurrir e iterar, ¿cuál sería la mejor manera de hacerlo?
Esto tiene un problema enorme rendimiento con gran número de archivos. –
@Aim - ¿Puede usted (u otra persona) por favor, cuantificar su estado de cuenta? ¿Qué tan lento es el "problema de rendimiento masivo"? ¿Cuántos es "gran cantidad de archivos"? La solución de Jon funciona para mí, pero me gustaría saber cuándo y cómo podría ser problemático. – Dhaust
@DavidHAust La razón es que [método 'GetFiles'] (http://msdn.microsoft.com/en-us/library/07wt70x2.aspx) se materializará la totalidad * * lista de los archivos que se encuentran en un directorio. El método preferido para llamar ahora es [ 'Directory.EnumerateFiles'] (http://msdn.microsoft.com/en-us/library/dd383571.aspx) ya que transmitir los archivos de nuevo (a través de un' yield'-como mecanismo) ya que la llamada subyacente al sistema operativo devuelve los resultados. – casperOne