Якщо у вас є повний шлях на кшталт: "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;
}