这可能是一些愚蠢的事情,但我就是看不出来。所以我有这段代码:
var dir = new DirectoryInfo("somedir");
if (dir.Exists) {
dir.Delete(true);
}
dir.Create();
如果目录不存在,那么该目录会被成功创建。如果目录已经存在,则不会创建新的目录。为什么呢?
试试这个:
var dir = new DirectoryInfo("somedir");
if (dir.Exists)
{
dir.Delete(true);
dir.Refresh();
}
dir.Create();
您需要在删除后使用refresh来更新状态信息。Refresh()
会解决这个问题。dir.Create()
调用静态方法 Directory.InternalCreateDirectory(FullPath, OriginalPath, null, true);
,没有传递任何状态信息(特别是字段 _dataInitialised
)。 - Scott ChamberlainFILE_FLAG_DELETE_ON_CLOSE
的问题。 - Scott Chamberlain
var dir = new DirectoryInfo(@"D:\Test\DirTest");
,它可以在DirTest
存在和不存在的情况下都能正常工作。 - Scott Chamberlainif()
条件包裹在{ }
中。 - MethodMan