考虑这段代码:
string dir = Environment.CurrentDirectory + @"\a";
Directory.CreateDirectory(dir);
FileSystemWatcher watcher = new FileSystemWatcher(dir);
watcher.IncludeSubdirectories = false;
watcher.EnableRaisingEvents = true;
Console.WriteLine("Deleting " + dir);
Directory.Delete(dir, true);
if (Directory.Exists(dir))
{
Console.WriteLine("Getting dirs of " + dir);
Directory.GetDirectories(dir);
}
Console.ReadLine();
有趣的是,这会在Directory.GetDirectories(dir)
.
删除监视的目录返回没有错误,但 Directory.Exists() 仍然返回 true 并且该目录仍然列出。此外,访问该目录会为任何程序产生“拒绝访问”。一旦带有 FileSystemWatcher 的 .NET 应用程序退出,目录就会消失。
如何在允许正确删除目录的同时观看目录?