有时,运行此代码后不会留下任何“foo”目录:
string folder = Path.Combine(Path.GetTempPath(), "foo");
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
Process.Start(@"c:\windows\explorer.exe", folder);
Thread.Sleep(TimeSpan.FromSeconds(5));
Directory.Delete(folder, false);
Directory.CreateDirectory(folder);
似乎Windows资源管理器保留了对该文件夹的引用,因此最后一个CreateDirectory无关,但随后原始文件夹被删除。如何修复代码?
编辑:很抱歉我的问题不清楚。我的目标是创建一个空的“foo”目录。如果目录已经存在,我将其删除并重新创建。问题是,如果 Windows 资源管理器正在查看目录,则 CreateDirectory 调用有时会静默失败。没有引发异常;只是没有创建目录。
上面的代码在我的电脑中重现了这个问题。只有最后两行属于我的实际应用程序。前几行已设置。运行代码后,“foo”是否一直存在?在我的电脑中有一半的时间不是这种情况。
目前,我正在手动删除 foo 的每个文件和子目录。