Якщо у вас є повний шлях на кшталт: "C:\dir0\dir1\dir2\dir3\dir4\"
як би ви найкраще його реалізували, щоб усі каталоги були присутніми?
Чи є метод для цього в БКЛ? Якщо ні, то який найелегантніший спосіб зробити це?
Якщо у вас є повний шлях на кшталт: "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.
Якщо весь шлях вже існує, він нічого не зробить. (Це не кине виняток)
Path.GetDirectoryName
щоб отримати його.
Створюйте каталоги з повного файлового шляху
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;
}