3

Я заметил, что когда я ищу файл по имени (в Windows или Linux), это, как правило, интенсивный процесс на диске, особенно в Windows. Кажется, что утилита (Windows Search, или "найти" в Cygwin) сканирует все дерево каталогов, рассматривая каждый файл один за другим.

Мне интересно, почему бы не загрузить таблицу основных файлов (или эквивалентную, если не NTFS) в память и разобрать ее чисто в памяти? Я полагаю, что это похоже на индексы, поддерживаемые более современным поиском, таким как Windows Search, Google Desktop Search и Spotlight, но даже они косвенные. Я предполагаю, что файловые системы обычно не делают свои метаданные доступными для внешних программ?

Я не могу доказать, что поиск еще не основан на MFT, но кажется маловероятным, основываясь на том, как он работает.

1 ответ1

4

Существуют программы, которые будут искать с помощью MFT на томах Windows NTFS, например проекты с открытым исходным кодом:

http://sourceforge.net/projects/swiftsearch/

http://sourceforge.net/projects/ntfs-search/

Они ОЧЕНЬ быстрые, но проблема в том, что как только вы начинаете переходить прямо к MFT, вы обходите стороной обходные функции, такие как списки контроля доступа и расширения оболочки. Поэтому большинство из этих программ должны работать с повышенными правами и не обязательно давать те же результаты, что и поиск на основе API.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .