Если у вас есть полный путь, например: "C:\dir0\dir1\dir2\dir3\dir4\" как бы вы лучше его реализовали, чтобы присутствовали все каталоги?
"C:\dir0\dir1\dir2\dir3\dir4\"
Есть ли способ для этого в BCL? Если нет, то какой самый элегантный способ сделать это?
Я бы позвонил Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\").
Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
Вопреки распространенному мнению, Directory.CreateDirectory автоматически создаст родительские каталоги, которых не существует. По словам MSDN, Creates all directories and subdirectories as specified by path.
Directory.CreateDirectory
Creates all directories and subdirectories as specified by path.
Если весь путь уже существует, он ничего не будет делать. (Это не будет исключение)
Создание каталогов из полного пути к файлу
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; }