【发布时间】:2011-01-09 05:10:07
【问题描述】:
如果您有一个完整路径,例如:"C:\dir0\dir1\dir2\dir3\dir4\",您将如何最好地实现它以便所有目录都存在?
在 BCL 中有这样的方法吗?如果没有,最优雅的方法是什么?
【问题讨论】:
标签: c# .net base-class-library
如果您有一个完整路径,例如:"C:\dir0\dir1\dir2\dir3\dir4\",您将如何最好地实现它以便所有目录都存在?
在 BCL 中有这样的方法吗?如果没有,最优雅的方法是什么?
【问题讨论】:
标签: c# .net base-class-library
我会打电话给Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")。
与普遍看法相反,Directory.CreateDirectory 会自动创建任何不存在的父目录。
用 MSDN 的话来说,Creates all directories and subdirectories as specified by path.
如果整个路径已经存在,它将什么都不做。 (不会抛出异常)
【讨论】:
Path.GetDirectoryName 获取。
从完整的文件路径创建目录
private String EvaluatePath(String path){
try
{
String folder = Path.GetDirectoryName(path);
if (!Directory.Exists(folder))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(folder);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
return "";
}
return path;
}
【讨论】: