おそらく非常に簡単な質問だと思います(誰かにとって)。C:\A\B\C\D\ などのパスが与えられた場合、そのパスがまだ存在しない場合 (C:\A\ B は、もちろん)、c# で?
私が考えることができる唯一のものは、これが伴う潜在的な落とし穴のすべてを備えた、かなり汚い見た目の小さなパスパーサーに関するものです。ここにいる多くの人は、以前にこの小さな問題に遭遇したことがあり、私が思いつくよりも優れた解決策を持っていると確信しています.
それで、あなたの考えは紳士(そして女性)を喜ばせますか?
System.IO.Directory.CreateDirectory(@"C:\A\B\C\D\")うまくいくでしょう。
// Specify the directories you want to manipulate.
DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
try
{
// Determine whether the directory exists.
if (di.Exists)
{
// Indicate that it already exists.
Console.WriteLine("That path exists already.");
return;
}
// Try to create the directory.
di.Create();
Console.WriteLine("The directory was created successfully.");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {}
Directory.CreateDirectory(@"C:\A\B\C\D\");
パスにすべてのディレクトリがまだ存在しない場合は作成し、子ディレクトリ(この場合はD)のDirectoryInfoオブジェクトを返します。
MSDNと「Directory.exists」-メソッドを確認することをお勧めします。
このようにして、「C:\ A \ B \ C \ D ...」がすでに存在するかどうかを検出でき、存在しない場合は、Directory.Create(String directoryName) ...を使用して作成できます。
Directory.CreateDirectoryがそれを処理します。
string folderPath = "C:\A\B\C\D"
if (!System.IO.Directory.Exists(folderPath))
System.IO.Directory.CreateDirectory(folderPath);