Process Monitor監控目錄
利用之前Windows API的知識,可以實現目錄監控的功能,實際上我也實現了,但是如文中所述,當指定目錄下操作過多時,會損失部分通知。多少算多呢,解壓一個eclipse開發環境的壓縮包到監控目錄下,相當於短時間內在目標資料夾中建立了數千個檔案,結果幾乎任何資訊都沒收到,所以,原本的程式在這種情況下侷限性還是很明顯的。
考慮到監控效能改進,還可以使用:
1.分析Change Journal的辦法,前提是系統開啟了這個功能;
2.寫Windows檔案驅動,據說是個痛苦的過程;
重新研究自己的需求,發現其實這種大量檔案操作情境,都可以在可控的情況下進行,只要能夠搭建一個環境,利用特定的工具監控這個過程就可以,我猜
下面說說我如何用它來監控目錄。
工具啟動後會監控系統所有的活動,大部分資訊都不需要,所以需要設定過濾器,此工具的靈活性都體現於此。
工具預設自帶了一些過濾條件,看到:主語+謂語+賓語,構成條件句,包含或者不包含,可以通過下拉列表隨意選擇內容進行組合,簡單而強大。
要監控某個目錄下的情況,首先,選擇只顯示檔案系統的資訊,
然後,設定需要監控目錄的條件,
本來只要加上Path條件就可以了,但資訊還是太多,還需要進一步過濾,其中:
WriteFile:表示寫操作,依照檔案大小可能產生多條;
ReadFile:表示讀操作,一次讀會產生很多條;
SetAllocationInformationFile:改寫檔案時觸發;
SetEndOfFileInformationFile:改寫檔案時觸發;
SetRenameInformationFile:重新命名時觸發;
SetDispositionInformationFile:刪除檔案時觸發。
OK,有這些操作的排列組合,就可以監控某個目錄下檔案的建立、修改、刪除、訪問操作了。儲存日誌為檔案,以便日後分析。