Tengo un trabajo que se ejecuta todas las noches para extraer archivos xml de un directorio que tiene más de 20,000 subcarpetas en la raíz. Esto es lo que ve la estructura como:La manera más rápida en C# para encontrar un archivo en un directorio con más de 20,000 archivos
rootFolder/someFolder/someSubFolder/xml/myFile.xml
rootFolder/someFolder/someSubFolder1/xml/myFile1.xml
rootFolder/someFolder/someSubFolderN/xml/myFile2.xml
rootFolder/someFolder1
rootFolder/someFolderN
Así que mirar lo anterior, la estructura es siempre la misma - una carpeta raíz, a continuación, dos subcarpetas, a continuación, un directorio xml, y luego el archivo XML. Solo conozco el nombre de rootFolder y el directorio xml.
El siguiente código atraviesa todos los directorios y es extremadamente lento. ¿Alguna recomendación sobre cómo puedo optimizar la búsqueda, especialmente si se conoce la estructura del directorio?
string[] files = Directory.GetFiles(@"\\somenetworkpath\rootFolder", "*.xml", SearchOption.AllDirectories);
¿Está buscando un archivo xml particular o desea una lista de todos ellos? –
Estoy buscando todos los archivos xml – adeel825
Si la lista de archivos xml no cambia con el tiempo, podría compilar la lista una sola vez y leer todos los archivos de la lista. Pero probablemente lo sabías. – Bearddo