次のようなフルパスがある場合:"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.
パス全体が既に存在する場合、何も実行されません。 (例外をスローしません)
完全なファイルパスからディレクトリを作成する
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;
}