Sign up ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've just discovered UltraSearch and was blown away by its file and folder search speed. It's instantaneous. And doesn't use any indexing service. It simply uses the NTFS Master File Table, which already stores all the filenames on the NTFS partition.

The question is, why isn't this capability way more popular among file managers, and Windows Explorer Search (Win+F) to begin with?

share|improve this question

closed as not constructive by Ƭᴇcʜιᴇ007, Everett, Tog, Karan, Nifle Jan 10 '13 at 18:29

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Fantastic job closing this 16-upvote question, techie007, @Everett, Tog, Karan, Nifle; totally not constructive; you're doing the community a great favor! – Dan Dascalescu Jan 12 '13 at 10:44
Also see Everything by VoidTools which does the same thing. – David d C e Freitas May 7 at 19:58

3 Answers 3

up vote 26 down vote accepted

Because of Security!

That's the real reason. (And the only real reason, in my opinion -- it's not that hard to make a reader for major file systems, although it's by no means easy; making a writer is the real challenge.)

A program like this bypasses the entire (file) system's security infrastructure, so only an administrator (or someone else who has "Manage Volume" privileges) can actually run it.

So obviously, it wouldn't work in many scenarios -- and I don't think Microsoft (or any other big company) would ever consider making a product like this and then encouraging users to run as administrators, because of the security ramifications.

It would be theoretically possible to make a system which runs in the background and filters out secured data, but in practice it would be a lot of work to get correct and without security holes for production.

By the way I haven't used UltraSearch, but I'd written a very similar program myself a few years ago which I open-sourced just last month! Check it out if you're interested. :)

share|improve this answer
This does not feel like a right reason. OS can give a view for unsecured search just like a DMBS. An API or a restricted view should give public access to public files. And if the file table does not know anything about security of different directories than it is probably bad design on the OS design end – LifeH2O May 24 at 13:01
@LifeH2O: The problem is that adding security checks is going to be a massive performance hit, which entirely defeats the point of the tool. – Mehrdad May 24 at 17:27
How the performance hit can be more than scanning directories? Only the security of inner directories will need to be checked. I don't know how much can be done with windows file table. – LifeH2O May 24 at 18:31
@LifeH2O: Have you considered how complicated it is to "check" something? Users belong to multiple groups, groups and users can each have allow/deny/neither permissions on either some directory on the chain or on the file itself, and you have to figure out the effective permissions for the current user on each file using its ACL. Now add to that the synchronization required with the kernel's security manager subsystem, and you're going to get massive performance hits just "checking" all the files. – Mehrdad May 24 at 18:50
@LifeH2O: And this is all assuming the security information is already in memory or in MFT, which it typically isn't. – Mehrdad May 24 at 18:55

File managers have to be able to support every single filesystem that could be encountered. As such, they have to call into the VFS via its API. There is no (sane) way to return a large array from an API call, which results in the file enumeration being serial regardless of the presence of a MFT/FAT/superblock.

share|improve this answer

File indexing service is for user who would like to search content (most likely text) and metadata of files, not merely filename. That's why it takes a long time go walk through all the files and the index built from such services is big and relatively slow. You can disable indexing service in Windows but windows explorer is stupid enough to keep searching file content after filenames. As Ignacio Vazquez-Abrams said the file managers cannot take advantage from low-level file system.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.