如何在C#中从单个完整路径创建多个目录?

时间:2010-01-25 17:59:05

标签: c# .net base-class-library

如果你有一个完整的路径,如:"C:\dir0\dir1\dir2\dir3\dir4\"你最好如何实现它,以便所有目录都存在?

在BCL中有这种方法吗?如果没有,那么最优雅的方法是什么?

2 个答案:

答案 0 :(得分:309)

我会打电话给Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")

与普遍看法相反,Directory.CreateDirectory会自动创建不存在的父目录  用MSDN的话说,Creates all directories and subdirectories as specified by path.

如果整个路径已经存在,它将不执行任何操作。 (它不会抛出异常)

答案 1 :(得分:2)

从完整的文件路径创建目录

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;
}