Я бы, вероятно, избегал любого интерпретируемого языка, такого как VBScript и др., Именно по указанным вами причинам - просто не будет работать так же хорошо в сценарии, где производительность является проблемой.
Теперь, как формальное предостережение для моего предложения, я предполагаю, что в течение ожидаемого времени такое приложение будет работать, что набор подходящих файлов (цель поиска) останется относительно стабильным, так что рискложная проверка присутствия приложения из-за изменений в наборе файлов после запуска приложения сканирования минимальна.
Это не элегантно, но я бы, по крайней мере, предложил бы изучить приложение консольного типа для Win32 (не .NET), которое рекурсивно ищет дерево каталогов в отображаемом в памяти файле, а затем ищет в этом файле требуемый шаблон.Это ограничивает доступ к диску только усилиями, необходимыми для накопления результатов, а затем помещает поиск в предположительно (намного) более быстрый файл с резервной копией памяти.Возможно, я недооцениваю размер и / или сложность содержимого вашего набора файлов, но это то, что я бы предложил в качестве отправной точки.
Я рекомендую приложение Win32 поверх приложения .NET, чтобы избежать накладных расходов во время выполнения инфраструктуры, но применяются очевидные предостережения относительно неуправляемого приложения.
Надеюсь, что это полезно, или, по крайней мере,немного мешает тебе.Удачи.