.net NET的CreateDirectory方法的奇怪行为

.net NET的CreateDirectory方法的奇怪行为,.net,.net,我有以下代码: if (Directory.Exists("mydir")) Directory.Delete("mydir", true); Directory.CreateDirectory("mydir"); ... if (!Directory.Exists("mydir")) { Fail("mydir not created"); } 代码是为了确保mydir是新的。但是,该代码段间歇性地失败,因为即使我有上面的CreateDirectory方法,也没有创建m

我有以下代码:

if (Directory.Exists("mydir"))
    Directory.Delete("mydir", true);

Directory.CreateDirectory("mydir");

...

if (!Directory.Exists("mydir"))
{
    Fail("mydir not created");
}

代码是为了确保mydir是新的。但是,该代码段间歇性地失败,因为即使我有上面的CreateDirectory方法,也没有创建mydir文件夹。有人遇到过类似的问题吗?

mydir的真正路径是什么?这是一个特殊的文件夹吗?您是否得到任何异常?如果在尝试确定目录是否存在时发生任何错误,Exists将返回false(例如,因为您没有权限)。无论如何,没有理由调用Exists twise,CreateDirectory返回一个表示新目录的DirectoryInfo对象。尽管如此,如果创建失败,Exists将再次成为错误。这是一个常见的灾难,太多的反恶意软件扫描器、搜索索引器和云存储实用程序使这种代码有机会获得一致的成功。他们使用删除共享打开文件,因此删除似乎可以正常工作,但文件直到稍后才会消失。最好的解决方案是不这样做或重命名目录。这是一个普通文件夹,不在任何特殊文件夹或系统文件夹中。最后一个Exits调用只是一个测试。在真正的发布代码中,它不包括在内。我无法理解为什么Directory.CreateDirectory即使不是间歇性创建目录也不会抛出任何错误。如果我使用DirectoryInfo.Create,那么一切都很好。我怀疑Directory.CreateDirectory方法中存在某种缺陷。