.NET FileSystemWatcher检测NTFS安全性更改

时间:2011-06-22 01:07:15

标签: c# .net security ntfs filesystemwatcher

.NET FileSystemWatcher的Changed事件MSDN documentation说:

  

当对正在监视的目录中的文件或目录的大小,系统属性,上次写入时间,上次访问时间或安全权限进行更改时,将引发Changed事件。

但是,当我尝试使用此类捕获对目录或文件的NTFS安全更改时,Changed事件永远不会触发。

有没有一种方法可以在没有投票的情况下完成这项工作?

1 个答案:

答案 0 :(得分:6)

FileSystemWatcher会监视安全权限的变化 设置NotifyFilters.Security时,需要包含FileSystemWatcher.NotifyFilter标记。 我尝试了下面的代码,更改了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)
{
}