我在路径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)
将无效,因为该文件夹不存在。对这种奇怪的行为有什么解释吗?
答案 0 :(得分:1)
有同样的问题。没有发生错误,但根本不会创建文件夹。刚刚发现问题的根源和简单的修复。
我有类似的东西:
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%的时间内创建文件夹。没有更多的问题。