Почему утилиты поиска файлов просто не загружают и не разбирают MFT?
Я заметил, что когда я ищу файл по имени (в Windows или Linux), это, как правило, интенсивный процесс на диске, особенно в Windows. Кажется, что утилита (Windows Search, или "найти" в Cygwin) сканирует все дерево каталогов, рассматривая каждый файл один за другим.
Мне интересно, почему бы не загрузить таблицу основных файлов (или эквивалентную, если не NTFS) в память и разобрать ее чисто в памяти? Я полагаю, что это похоже на индексы, поддерживаемые более современным поиском, таким как Windows Search, Google Desktop Search и Spotlight, но даже они косвенные. Я предполагаю, что файловые системы обычно не делают свои метаданные доступными для внешних программ?
Я не могу доказать, что поиск еще не основан на MFT, но кажется маловероятным, основываясь на том, как он работает.
1 ответ
Существуют программы, которые будут искать с помощью MFT на томах Windows NTFS, например проекты с открытым исходным кодом:
http://sourceforge.net/projects/swiftsearch/
http://sourceforge.net/projects/ntfs-search/
Они ОЧЕНЬ быстрые, но проблема в том, что как только вы начинаете переходить прямо к MFT, вы обходите обходные пути, такие как списки ACL безопасности и расширения оболочки. Поэтому большинство из этих программ должны запускаться с повышенными правами и не обязательно давать те же результаты, что и поиск на основе API.