0
我有一個任務來實現像這樣的行爲的服務。 我的問題是:Windows索引服務如何工作?
索引服務如何記住哪些文件已被索引,哪些文件發生了變化,需要重新索引它們?
此外,我可以停止此服務,然後在幾天後啓動它,它會繼續工作。 它有自己的數據庫與關於文件的信息?
謝謝
我有一個任務來實現像這樣的行爲的服務。 我的問題是:Windows索引服務如何工作?
索引服務如何記住哪些文件已被索引,哪些文件發生了變化,需要重新索引它們?
此外,我可以停止此服務,然後在幾天後啓動它,它會繼續工作。 它有自己的數據庫與關於文件的信息?
謝謝
通常情況下,索引服務停留在通過調用FindFirstChangeNotification
創建手柄使用WaitForSingleObject/WaitForMultipleObjects
背景。如果你想支持索引服務可以被關閉(或者用於已經存在的目錄),你應該確保在每個文件上存儲你最後一次索引運行的時間戳。您可以將它與給定文件的LastWriteTime進行比較。
編輯:你應該使用ReadDirectoryChangesW和另一個線程異步索引的文件,以確保不會錯過任何更改。你可以爲每個文件產生新的線索來索引(昂貴),或者使用一個工作隊列和固定數量的工作線程(最好是1或2)
好的,thnx。看起來停止/啓動服務後重新掃描文件系統並閱讀其數據庫,以檢查自上次活動後發生了什麼變化? – Oleg 2011-01-07 11:06:35