为什么文件管理器不使用主文件表获取即时搜索结果?[关闭]


27

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

现在的问题是,为什么没有这种能力的方式的文件管理器中更受欢迎,和Windows资源管理器搜索(WIN + F)与开始?


2
另请参见VoidTools的Everything,它执行相同的操作。
戴维·德·弗雷塔斯

1
出色的工作人员以超过20票的高票结束了问题,将其视为“非建设性的”!
Dan Dascalescu 2016年

Answers:


29

因为安全!

那是真正的原因。(而且只有真正的原因,在我看来-这不是很难做出重大的文件系统提供的阅读器,虽然它绝不是简单的;做一个作家是真正的挑战。)

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

所以很明显,它在许多情况下都行不通 -而且我认为Microsoft(或任何其他大公司)不会考虑过制造这样的产品,然后由于安全方面的原因而鼓励用户以管理员身份运行

是理论上的可能使得其在后台运行,并筛选出安全数据的系统,但在实践中这将是一个很大的工作来获取生产正确的,没有安全漏洞。

顺便说一下,我还没有使用过UltraSearch,但是几年前我自己写了一个非常类似的程序,上个月我才开源了它!如果有兴趣,请查看。:)


1
这似乎不是正确的理由。操作系统可以像DMBS一样提供不安全搜索的视图。API或受限视图应允许公众访问公共文件。而且,如果文件表对不同目录的安全性一无所知,那么它可能是OS设计端的坏设计
LifeH2O 2015年

@ LifeH2O:问题在于,添加安全检查将严重打击性能,这完全破坏了该工具的作用。
Mehrdad 2015年

1
与扫描目录相比,性能受到的影响如何?只需要检查内部目录的安全性。我不知道Windows文件表可以完成多少工作。
LifeH2O

1
@ LifeH2O:您是否考虑过“检查”某件东西有多复杂?用户属于多个组,每个组和用户都可以对链中某个目录或文件本身具有允许/拒绝/都不具有权限,并且您必须使用其ACL来确定当前用户对每个文件的有效权限。 。现在添加到与内核的安全管理器子系统所需的同步中,您将仅“检查”所有文件而获得巨大的性能成功。
Mehrdad 2015年

1
您需要提供一些权威性的信息来表明您在说什么,否则人们无法将猜测与信息区分开。我同意别人的看法,这纯粹是猜测。
user34660 '16

6

文件管理器必须能够支持可能遇到的每个单个文件系统。因此,他们必须通过其API调用VFS。没有(明智的)方法可以从API调用返回大数组,这导致文件枚举是串行的,而不管是否存在MFT / FAT / superblock。


1
如果您是一名程序员,那么您将知道API如何管理您所说的大量数据。不,搜索程序不需要支持多个文件系统。
user34660 '16

@ user34660:他们有两个选择:1)使用枚举。2)处理非常大的数据集时,运行速度非常慢。仅支持单个文件系统的搜索工具的实用性非常有限。
伊格纳西奥·巴斯克斯

3

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.