如果你有一个完整的路径,比如:"C:\dir0\dir1\dir2\dir3\dir4\"
,你应该如何最好地实现它,以使所有目录都存在?
BCL中是否有这样的方法?如果没有,最优雅的方法是什么?
如果你有一个完整的路径,比如:"C:\dir0\dir1\dir2\dir3\dir4\"
,你应该如何最好地实现它,以使所有目录都存在?
BCL中是否有这样的方法?如果没有,最优雅的方法是什么?
我会调用 Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
方法。
与普遍看法相反,Directory.CreateDirectory
会自动创建不存在的任何父目录。
按照MSDN的说法,按照指定路径创建所有目录和子目录。
如果整个路径已经存在,则不会执行任何操作。(它不会抛出异常)
从完整文件路径创建目录
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;
}
Path.GetDirectoryName
来获取它。 - SLaksDirectoryInfo.Create()
也可以工作。 - Nicolas