作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在路径 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% 的时间都创建了文件夹。没有更多的问题。
关于c# - Directory.CreateDirectory 并不总是创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32257708/
我是一名优秀的程序员,十分优秀!