希望实现对网络驱动器的即时索引(类似Everything)

我的大量工作文件保存在公司的文件服务器上(Windows),通过网络驱动器(共享文件夹)访问。我用的Listary Pro(v6.3.0.67)和Everything(v1.4.1.1024)都有索引网络驱动器的功能,已索引的网络驱动器上发生文件变化时,Everything能马上捕捉到,Listary则不行,隔上一段时间才会出现。由于这个原因,我始终没法用Listary完全取代Everything。

而且,如果Listary搜索出的网络驱动器上的文件已经不存在(已更名或删除),右键单击该文件还会出现【System.IO.FileNotFoundException:系统找不到指定的文件】错误,必须重启Listary。

打开Everything搜索窗口什么也不搜(列出所有文件),按修改时间降序排序,可以方便地观察Everything捕捉网络驱动器更新的速度,基本和本地驱动器一样都是瞬间完成。

查了一下Everything文档,似乎是用ReadDirectoryChanges()做的:https://www.voidtools.com/forum/viewtopic.php?t=6231
在v1.5测试版里面进一步使用了SHChangeNotify()来实现快速检测:https://www.voidtools.com/forum/viewtopic.php?t=12054

2 Likes

上述的这两个都已经修复或者实现了。会在下个 beta 版本中发布。

1 Like