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

Posted

技术标签:

【中文标题】如何从 C# 中的单个完整路径创建多个目录?【英文标题】:How to create multiple directories from a single full path in C#? 【发布时间】:2011-01-09 05:10:07 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

如果整个路径已经存在,它将什么都不做。 (不会抛出异常)

【讨论】:

谢谢,我不知道。路径必须是目录路径,而不是文件路径,对吧? @Joan:是的;您可以致电Path.GetDirectoryName 获取。 应该叫 CreateDirectoryTree【参考方案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;

【讨论】:

以上是关于如何从 C# 中的单个完整路径创建多个目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 获取给定路径的完整路径(可以是目录或文件,甚至是完整路径)?

如何从 C# 控制台应用程序中的目录获取路径?

在 C# 中使用正则表达式从完整路径解析文件名

如何从shell脚本中的另一个目录获取文件的完整路径? [复制]

如何使用该位置的相对路径在单个位置创建多个文件夹?

C#怎样获取项目的debug路径