2011-06-22 28 views
2

的.NET FileSystemWatcher對象的Changed事件MSDN documentation說:當更改大小就.NET FileSystemWatcher的檢測NTFS安全更改

改變的事件引發,系統屬性,上次寫入時間,最後訪問時間,或者安全權限被監控的目錄中的文件或目錄。

但是,當我嘗試使用此類來捕獲對目錄或文件的NTFS安全更改時,Changed事件從不觸發。

有沒有辦法實現這個沒有投票?

回答

6

FileSystemWatcher確實監視安全權限的變化。
當您設置FileSystemWatcher.NotifyFilter時,您需要包含NotifyFilters.Security標誌。 我試了下面的代碼,更改了Temp文件夾中文件的權限。觸發了Changed事件。

public static void Main() 
{ 
    var fileSystemWatcher = new FileSystemWatcher("C:\\Temp", "*.*"); 
    fileSystemWatcher.NotifyFilter = NotifyFilters.Security; 
    fileSystemWatcher.Changed += fileSystemWatcher_Changed; 
    fileSystemWatcher.EnableRaisingEvents = true; 
    Thread.Sleep(-1); 
} 

private static void fileSystemWatcher_Changed(object sender, FileSystemEventArgs e) 
{ 
} 
+0

謝謝,我錯過了NotifyFilter。 – AlexPi