web-dev-qa-db-ja.com

ファイル検索ユーティリティがMFTをロードして解析しないのはなぜですか?

(WindowsまたはLinuxで)名前でファイルを検索すると、特にWindowsでは、通常、ディスクを大量に消費するプロセスであることに気付きました。ユーティリティ(Windows Search、またはCygwinの「find」)は、各ファイルを1つずつ考慮して、ディレクトリツリー全体をスキャンしているようです。

マスターファイルテーブル(またはNTFSでない場合は同等のもの)をメモリにロードして、純粋にメモリで解析してみませんか?これは、Windows Search、Google Desktop Search、Spotlightなどの最新の検索で維持されているインデックスに似ていると思いますが、それらも間接的です。ファイルシステムは通常、メタデータを外部プログラムで利用できるようにしないと思いますか?

検索がまだMFTに基づいていないことを証明することはできませんが、実行方法に基づいている可能性は低いようです。

4
Stephen

WindowsNTFSボリュームでMFTを使用して検索するプログラムがあります。オープンソースプロジェクト:

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

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

それらは非常に高速ですが、問題は、MFTに直接アクセスし始めると、セキュリティACLやシェル拡張などの機能をバイパスすることです。したがって、これらのプログラムのほとんどは昇格された権限で実行する必要があり、必ずしもAPIベースの検索と同じ結果を生成するとは限りません。

4
snowdude