Как создать несколько каталогов из одного полного пути в C #? - PullRequest
142 голосов
/ 25 января 2010

Если у вас есть полный путь, например: "C:\dir0\dir1\dir2\dir3\dir4\" как бы вы лучше его реализовали, чтобы присутствовали все каталоги?

Есть ли способ для этого в BCL? Если нет, то какой самый элегантный способ сделать это?

Ответы [ 2 ]

312 голосов
/ 25 января 2010

Я бы позвонил Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\").

Вопреки распространенному мнению, Directory.CreateDirectory автоматически создаст родительские каталоги, которых не существует.
По словам MSDN, Creates all directories and subdirectories as specified by path.

Если весь путь уже существует, он ничего не будет делать. (Это не будет исключение)

2 голосов
/ 14 ноября 2018

Создание каталогов из полного пути к файлу

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