Если у вас есть полный путь, например: "C:\dir0\dir1\dir2\dir3\dir4\"
как бы вы лучше его реализовали, чтобы присутствовали все каталоги?
Есть ли способ для этого в BCL? Если нет, то какой самый элегантный способ сделать это?
Если у вас есть полный путь, например: "C:\dir0\dir1\dir2\dir3\dir4\"
как бы вы лучше его реализовали, чтобы присутствовали все каталоги?
Есть ли способ для этого в BCL? Если нет, то какой самый элегантный способ сделать это?
Ответы:
Я бы позвонил 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;
}