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

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

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

【问题讨论】:

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


    【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2010-10-14
      • 2017-11-07
      • 1970-01-01
      相关资源
      最近更新 更多