フォルダーを監視するために使用FileSystemWatcher
していますが、フォルダーの親が削除されないように見えますが、フォルダー自体の削除は妨げられません。
たとえば、ファイル構造は次のとおりです。
C:\Root\FolderToWatch\...
をFileSystemWatcher
ターゲティングしFolderToWatch
ます。プログラムの実行中に Windows エクスプローラーで を削除しようとすると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
ターゲット自体ではなく、ターゲットの親にハングアップするのはなぜですか?