我正在编写一个工具,用于查找 iTunes 库中丢失的文件,适用于 Mac 和 Windows。在 Mac 上,我可以使用奇妙的“目录搜索”功能通过命名快速找到文件。
但是,在 Windows 上,似乎没有用于按文件名搜索的 OS API(或者有吗?)。
经过一番谷歌搜索,我了解到有一些工具(如TFind,Everything)可以直接读取 NTFS 目录并扫描它以按名称查找文件。
我也想这样做,但不必从头开始(虽然我过去写过不少磁盘工具,但我从来没有精力深入研究 NTFS)。
我想知道周围是否有现成的库,可能是.dll,这会给我这个搜索功能:传入文件名,取回它的路径。
或者,Windows 索引服务呢?至少当我在最近安装的 XP Home 系统上尝试此操作时,开始菜单下的搜索操作实际上会扫描所有目录,这表明它没有完整的数据库。由于我根本不是 Windows 用户,我想知道为什么这不起作用。
最后,我需要的完整解决方案是:我有一个要查找的文件名列表,并且我需要搜索整个磁盘(或使用数据库)的代码,以便一次获得所有结果。例如,搜索不应该对我正在查找的每个文件开始新的全面扫描。这就是为什么我认为 MFT 方式是最佳的,因为它可以快速迭代所有名称,并将每个名称与我的列表进行比较。