我有一项以这样的行为实施服务的任务。我的问题是:

索引服务如何记住已经索引了哪些文件,什么否,哪些文件更改并需要重新索引它们?

另外,我可以停止此服务,然后几天后开始工作,继续工作。它是否有自己的数据库,其中包含有关文件的信息?

谢谢

有帮助吗?

解决方案

通常使用索引服务在背景中使用 WaitForSingleObject / WaitForMultipleObjects 在呼叫中创建的手柄上 FindFirstChangeNotification. 。如果您想支持可以关闭索引服务(或用于已经存在的目录),则绝对应该将最后一个索引的时间戳存储在每个文件上。您可以将其与 持久时间 给定文件。

编辑:您应该使用 ReadDirectoryChangesw 以及异步索引文件的另一个线程,以确保不要错过任何更改。您可以为每个文件产生新线程以索引(昂贵)或使用作业队列和固定数量的工作线程(最好是1或2个)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top