.NET FileSystemWatcher для обнаружения изменений безопасности NTFS - PullRequest
2 голосов
/ 22 июня 2011

Событие Changed .NET FileSystemWatcher Документация MSDN говорит:

Событие Changed возникает, когда вносятся изменения в размер, системные атрибуты, время последней записи, последний доступвремя или разрешения безопасности файла или каталога в отслеживаемом каталоге.

Однако, когда я пытаюсь использовать этот класс для записи изменений безопасности NTFS в каталог илиfile Событие Changed никогда не запускается.

Есть ли способ выполнить это без опроса?

1 Ответ

6 голосов
/ 22 июня 2011

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)
{
}
...