DirectoryInfo不会创建目录

Den*_*nis 3 .net c#

这必须是愚蠢的,但我只是没有看到它.所以我有这个代码:

var dir = new DirectoryInfo("somedir");
if (dir.Exists) {
   dir.Delete(true);
}
dir.Create();
Run Code Online (Sandbox Code Playgroud)

如果目录不存在,则创建目录就好了.如果目录EXISTS则没有创建目录.为什么?

Nik*_*nte 11

试试这个:

var dir = new DirectoryInfo("somedir");
if (dir.Exists)
{
   dir.Delete(true);
   dir.Refresh();
}

dir.Create();
Run Code Online (Sandbox Code Playgroud)

删除后需要刷新以更新状态信息.

  • 通过参考源我无法找到任何原因调用[`Refresh()`](http://referencesource.microsoft.com/mscorlib/system/io/filesysteminfo.cs.html#1c7b7d54ada1ef87)来解决这个问题.[`dir.Create()`](http://referencesource.microsoft.com/mscorlib/system/io/directoryinfo.cs.html#368db83772a7dab0)调用静态方法`Directory.InternalCreateDirectory(FullPath,OriginalPath,null,true );`,没有传递状态信息(特别是字段`_dataInitialised`). (2认同)