2011-06-22 7 views
2

.NET FileSystemWatcherのChangedイベントを変更MSDN documentationは言う:.NET FileSystemWatcherは

を変更はサイズ、システム属性、最終書き込み時刻、最終アクセス時刻に行われたときに変更されたイベントが発生し、またはセキュリティのアクセス許可、監視されているディレクトリ内のファイルまたはディレクトリ。しかし

、私はディレクトリまたはChangedイベントが発生させたことがないファイルにNTFSのセキュリティの変更をキャプチャするために、このクラスを使用するようにしてください。

ポーリングなしでこれを達成する方法はありますか?

答えて

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

関連する問題