Everything并不扫描整个磁盘,只是读取磁盘上的USN日志,并建立索引,提前存储到数据库,查找时在数据库进行搜索,所以速度飞快。
Everything能快速获取所有硬盘上的文件列表,主要得益于Windows对NTFS的支持。NTFS的文件系统上存在一个数据表(Master File Table(MFT)),它记录了磁盘上所有文件的文件信息(USN Journal),当有文件进行增删改查时都会同步去更新这个信息。
Windows提供各种API给开发者去调用访问这些数据。Everything也是基于这些API来获取所有文件列表,这比遍历所有文件目录要快很多。但Everything开发技术本身也挺厉害,它可以在毫秒的级别内通过它自己维护的索引,快速搜索出上万的匹配结果,并且还支持通配符、正则表达式,而且可以瞬时显示在窗体上,让你感觉几乎是秒搜。所以比Windows自带的搜索爽很多。
Everything在第一次打开使用时会扫描整个硬盘,然后建立一个索引数据库,体积并不大,和电脑文件的数量有一定关系,但相对于AnyText(搜索文件内容的工具)已经小很多。如果你新增修改删除文件,Everything会实时去自动更新这个索引数据库,索引数据库建立之后,以后每次搜索文件,Everything就在它建立的这个Everything.db这个数据库里搜索,而不需要扫描整个硬盘上的文件,所以速度会快到离谱,这是Everything和Windows系统自带搜索的本质区别。
根据Everything的官网所说,它1分钟可以索引100万个文件。48万多个文件,建立索引需要的时间也只有几秒,索引无需逐一扫描硬盘文件,而是直接读取NTFS文件系统的USN日志,Everything由于核心原理建立在NTFS的底层机制上,NTFS文件系统中的 USN 日志记录了系统对NTFS分区中的文件所做的所有更改。对于每一卷,NTFS 都使用 USN 日志来跟踪有关添加、删除和修改的文件的信息。直接读取NTFS文件系统的USN日志, 所以速度很快
缺点也明显:
(1) 只支持NTFS格式的分区,因为USN日志是NTFS专有的。在FAT、FAT32格式分区上无法使用 Everything。
(2) 默认只索引文件名称、日期和大小,不索引文件内容和附加属性 。
(Everything可使用content来搜索文件内容,但未索引内容时搜索文本内容是比较慢的)
Everything的数据是存放在Everything.db 数据库中。随着文件越多,索引越大,这个数据库也就越大。也可删除它重建索引。
可看这里
城东书院:高效搜索神器Everything最全使用技巧(一篇看全)及详细功能帮助教程
可看这里
城东书院:Python C# VB6 VBA通过EveryThing SDK高效搜索接口进行二次开发
AnyText: 搜索文本内容
listary : 后面找时间再介绍
wox / Power Toys 等
更多高效办公工具集锦:
1、绿色软件,无须安装,下载即用
2、老牌软件,一直有更新。
3、高效快捷,搜索速度特别快
4、免费,不收费,良心软件
5、不光免费,还完全没有广告,而且坚持了这么多年,一个软件的开发需要付出巨大的努力还有时间和精力,能够坚持这么久,我自己也写些小工具,但感觉也无法坚持这么多年,所以的确是很值得推荐的!