Eğer tam bir yolunuz varsa: "C:\dir0\dir1\dir2\dir3\dir4\"
en iyi nasıl uygularsınız, böylece tüm dizinler mevcut olur mu?
BCL'de bunun için bir yöntem var mı? Değilse, bunu yapmanın en zarif yolu nedir?
Eğer tam bir yolunuz varsa: "C:\dir0\dir1\dir2\dir3\dir4\"
en iyi nasıl uygularsınız, böylece tüm dizinler mevcut olur mu?
BCL'de bunun için bir yöntem var mı? Değilse, bunu yapmanın en zarif yolu nedir?
Yanıtlar:
Arardım Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
.
Popüler inanışın aksine, Directory.CreateDirectory
hangi ana dizinler yoksa otomatik olarak oluşturulur.
MSDN'nin sözleriyle,Creates all directories and subdirectories as specified by path.
Tüm yol zaten mevcutsa, hiçbir şey yapmaz. (İstisna atmaz)
Path.GetDirectoryName
almak için arayabilirsiniz .
Tam dosyayolundan dizin oluşturma
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;
}