Единственное, что вы можете сделать, чтобы реально повысить свою производительность, - это непосредственно проанализировать MFT, если ваши тома являются NTFS. Делая это, вы можете перечислять файлы очень, очень быстро - мы говорим, по крайней мере, на порядок быстрее. Если все метаданные, которые вам нужны, являются частью записи MFT, ваши поиски будут выполняться намного быстрее. Даже если вам потребуется больше операций чтения для дополнительных метаданных, вы сможете очень быстро составить список файлов-кандидатов.
Недостатком является то, что вам придется анализировать MFT самостоятельно: для этого нет функций WinAPI, о которых я знаю. Вы также можете беспокоиться о вещах, которые оболочка обычно делает для вас, о таких вещах, как жесткие ссылки, соединения, точки повторной обработки, символические ссылки, ссылки оболочки и т. Д.
Однако, если вам нужна скорость, увеличение сложности - единственный способ ее достичь.
Мне неизвестен какой-либо доступный код Delphi, в котором уже реализован синтаксический анализатор MFT, поэтому вам, вероятно, придется либо использовать стороннюю библиотеку, либо реализовать ее самостоятельно. Я собирался предложить Open Source (GPL) NTFS Undelete , который был написан на Delphi, но он реализует синтаксический анализ MFT через код Python и имеет встроенный мост Delphi-Python.