Я использую FileSystemWatcher
для мониторинга папки, и, похоже, она препятствует удалению parent папки, но не мешает самой папке удалить .
Например, у меня есть структура файла:
C:\Root\FolderToWatch\...
с таргетингом FileSystemWatcher
FolderToWatch
. Во время работы моей программы, если я захожу в Windows Explorer и пытаюсь удалить Root
, я получаю сообщение об ошибке «Не удается удалить Root: доступ запрещен».
Однако, если я удаляю FolderToWatch
FIRST, я могу удалить Root
без инцидентов.
Вот код, если вы хотите поиграть с ним:
static void Main(string[] args) {
var watcher = new FileSystemWatcher(@"C:\Root\FolderToWatch");
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Changed += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Created += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Deleted += (sender, e) => Console.WriteLine(e.FullPath);
watcher.Renamed += (sender, e) => Console.WriteLine(e.FullPath);
watcher.EnableRaisingEvents = true;
Console.WriteLine("Press \'q\' to quit.");
while (Console.Read() != 'q');
}
Почему FileSystemWatcher
так висит на родителе своей цели, но не на самой цели?