私は、MacとWindowsの両方で、iTunesライブラリの失われたファイルを見つけるツールを書いている最中です。Macでは、すばらしい「カタログ検索」機能を使用して名前を付けることで、ファイルをすばやく見つけることができます。
ただし、Windowsでは、ファイル名で検索するためのOS APIがないようです(またはありますか?)。
少しグーグルした後、NTFSディレクトリを直接読み取り、スキャンして名前でファイルを見つけるツール(TFind、Everythingなど)があることを知りました。
同じことをしたいのですが、最初からやり直す必要はありません(過去にかなりの数のディスクツールを作成しましたが、NTFSを掘り下げるエネルギーはありませんでした)。
おそらく.dllとして、この検索機能を提供する既製のライブラリがあるかどうか疑問に思います。ファイル名を渡して、そのパスを取得します。
または、Windowsインデックスサービスについてはどうでしょうか。少なくとも最近インストールしたXPHomeシステムでこれを試したとき、 [スタート]メニューの[検索]操作で実際にすべてのディレクトリがスキャンされました。これは、完全なデータベースがないことを示しています。私はWindowsユーザーではないので、なぜこれが機能しないのか疑問に思います。
結局のところ、必要な完全な解決策は次のとおりです。検索するファイル名のリストがあり、すべての結果を一度に取得するためにディスク全体を検索する(またはDBを使用する)コードが必要です。たとえば、検索では、検索しているすべてのファイルに対して新しいフルスキャンを開始するべきではありません。そのため、MFTの方法が最適であると思います。これは、すべての名前をすばやく反復して、それぞれを私のリストと比較できるためです。