Jika Anda memiliki path lengkap seperti: "C:\dir0\dir1\dir2\dir3\dir4\"
bagaimana cara terbaik Anda mengimplementasikannya sehingga semua direktori ada?
Apakah ada metode untuk ini di BCL? Jika tidak, apa cara paling elegan untuk melakukan ini?
Jika Anda memiliki path lengkap seperti: "C:\dir0\dir1\dir2\dir3\dir4\"
bagaimana cara terbaik Anda mengimplementasikannya sehingga semua direktori ada?
Apakah ada metode untuk ini di BCL? Jika tidak, apa cara paling elegan untuk melakukan ini?
Jawaban:
Saya akan menelepon Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
.
Berlawanan dengan kepercayaan populer, Directory.CreateDirectory
secara otomatis akan membuat direktori induk mana pun yang tidak ada.
Dengan kata-kata MSDN,Creates all directories and subdirectories as specified by path.
Jika seluruh jalur sudah ada, itu tidak akan melakukan apa-apa. (Tidak akan melempar pengecualian)
Path.GetDirectoryName
untuk mendapatkannya.
Buat direktori dari filepath lengkap
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;
}