我在路径C:\Users\MYUSER\Desktop\TEST\上创建了一个文件夹。

我有以下代码:

private const string DIR = @"C:\Users\MYUSER\Desktop\TEST\tmp";

static void Main(string[] args)
{
    if (Directory.Exists(DIR))
        Directory.Delete(DIR);

    for (int i = 0; i < 100; i++)
    {
        var dinfo = Directory.CreateDirectory(DIR);
        Directory.Delete(DIR);
    }

    Directory.CreateDirectory(DIR);
}

当我执行代码时,大多数情况下它运行正常,并且我可以看到文件夹TEST中有一个文件夹tmp。

我的问题是,其他时候Directory.CreateDirectory(DIR)根本不会创建目录。我什至检查了返回的DirectoryInfo,其Exists属性为false,由于该文件夹不存在,因此Directory.CreateDirectory(DIR)无法使用。对于这种怪异的行为有什么解释吗?

最佳答案

遇到了同样的问题。没有发生错误,但是根本不会创建文件夹。刚刚发现了问题的根源和简单的解决方法。

我有类似的东西:

Directory.CreateDirectory("/Users/MyAccount/NewFolder");
#Some code...
Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder");

这将无法在之前创建的目录下创建文件夹。

解决方案:在路径的末尾添加一个斜杠。

代替:
Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder");

做:
Directory.CreateDirectory("/Users/MyAccount/NewFolder/SubFolder/");

添加尾斜杠可解决此问题,现在它可以100%的时间创建文件夹。没有更多的问题。

10-04 21:39
查看更多