aneira mais rápida em C # para encontrar um arquivo em um diretório com mais de 20.000 arquiv

Tenho um trabalho que é executado todas as noites para extrair arquivos xml de um diretório com mais de 20.000 subpastas na raiz. Aqui está a aparência da estrutura:

rootFolder/someFolder/someSubFolder/xml/myFile.xml
rootFolder/someFolder/someSubFolder1/xml/myFile1.xml
rootFolder/someFolder/someSubFolderN/xml/myFile2.xml
rootFolder/someFolder1
rootFolder/someFolderN

Então, olhando para o acima, a estrutura é sempre a mesma - uma pasta raiz, duas subpastas, um diretório xml e o arquivo xml. Somente o nome do rootFolder e o diretório xml são conhecidos por mi

O código abaixo percorre todos os diretórios e é extremamente lento. Alguma recomendação sobre como otimizar a pesquisa, especialmente se a estrutura de diretórios for conhecida?

string[] files = Directory.GetFiles(@"\\somenetworkpath\rootFolder", "*.xml", SearchOption.AllDirectories);

questionAnswers(9)

yourAnswerToTheQuestion