.NET FileSystemWatcher的Changed事件MSDN documentation说:
当对正在监视的目录中的文件或目录的大小,系统属性,上次写入时间,上次访问时间或安全权限进行更改时,将引发Changed事件。
但是,当我尝试使用此类捕获对目录或文件的NTFS安全更改时,Changed事件永远不会触发。
有没有一种方法可以在没有投票的情况下完成这项工作?
答案 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)
{
}