题
我有一项以这样的行为实施服务的任务。我的问题是:
索引服务如何记住已经索引了哪些文件,什么否,哪些文件更改并需要重新索引它们?
另外,我可以停止此服务,然后几天后开始工作,继续工作。它是否有自己的数据库,其中包含有关文件的信息?
谢谢
解决方案
通常使用索引服务在背景中使用 WaitForSingleObject / WaitForMultipleObjects
在呼叫中创建的手柄上 FindFirstChangeNotification
. 。如果您想支持可以关闭索引服务(或用于已经存在的目录),则绝对应该将最后一个索引的时间戳存储在每个文件上。您可以将其与 持久时间 给定文件。
编辑:您应该使用 ReadDirectoryChangesw 以及异步索引文件的另一个线程,以确保不要错过任何更改。您可以为每个文件产生新线程以索引(昂贵)或使用作业队列和固定数量的工作线程(最好是1或2个)
不隶属于 StackOverflow