为什么文件管理员不使用主文件表来获取即时搜索结果?

为什么文件管理员不使用主文件表来获取即时搜索结果?

我刚刚发现 UltraSearch,它的文件和文件夹搜索速度让我震惊。它瞬间。并且不使用任何索引服务。它只是使用NTFS 主文件表,它已将所有文件名存储在 NTFS 分区上。

问题是,为什么这种能力方式在文件管理器中更受欢迎,并且首先使用 Windows 资源管理器搜索(Win+F)?

答案1

因为安全!

这才是真正的原因。(而且仅有的在我看来,真正的原因并不是很难为主流文件系统制作一个读取器,尽管这绝非易事;制作一个作家才是真正的挑战。

这样的程序会绕过整个(文件)系统的安全基础设施,因此只有管理员(或具有“管理卷”权限的其他人)才能真正运行它。

显然,它在很多情况下都行不通——而且我认为微软(或任何其他大公司)永远不会考虑制作这样的产品,然后鼓励用户以管理员身份运行,因为这会带来安全问题。

理论上可以制作一个在后台运行并过滤掉安全数据的系统,但实际上这将是很多的工作以确保生产正确并且没有安全漏洞。

顺便说一句,我没有用过 UltraSearch,但几年前我自己写过一个非常类似的程序,开源就在上个月!如果你感兴趣的话可以去看看。:)

答案2

文件管理器必须能够支持可能遇到的每个文件系统。因此,它们必须调用虚拟金融服务通过其API. 没有(合理的)方法可以从 API 调用返回大型数组,这导致文件枚举是串行的,无论是否存在 MFT/FAT/超级块。

答案3

文件索引服务适用于想要搜索文件内容(最有可能是文本)和元数据(而不仅仅是文件名)的用户。这就是为什么需要花很长时间才能遍历所有文件,并且从此类服务构建的索引很大且相对较慢。您可以在 Windows 中禁用索引服务,但 Windows 资源管理器很愚蠢,会在文件名之后继续搜索文件内容。正如 Ignacio Vazquez-Abrams 所说,文件管理器无法利用低级文件系统。

相关内容