179

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

BCL中是否有这种方法?如果不是,那么最优雅的方法是什么?

4

2 回答 2

388

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

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

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

于 2010-01-25T18:00:20.587 回答
3

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

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;
}
于 2018-11-14T11:26:47.543 回答