0

おそらく非常に簡単な質問だと思います(誰かにとって)。C:\A\B\C\D\ などのパスが与えられた場合、そのパスがまだ存在しない場合 (C:\A\ B は、もちろん)、c# で?

私が考えることができる唯一のものは、これが伴う潜在的な落とし穴のすべてを備えた、かなり汚い見た目の小さなパスパーサーに関するものです。ここにいる多くの人は、以前にこの小さな問題に遭遇したことがあり、私が思いつくよりも優れた解決策を持っていると確信しています.

それで、あなたの考えは紳士(そして女性)を喜ばせますか?

4

6 に答える 6

3

System.IO.Directory.CreateDirectory(@"C:\A\B\C\D\")うまくいくでしょう。

于 2012-04-23T11:05:21.243 に答える
2

MSDN の例

    // 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 {}
于 2012-04-23T11:11:20.677 に答える
1
        Directory.CreateDirectory(@"C:\A\B\C\D\");

パスにすべてのディレクトリがまだ存在しない場合は作成し、子ディレクトリ(この場合はD)のDirectoryInfoオブジェクトを返します。

于 2012-04-23T11:05:43.553 に答える
1

MSDNと「Directory.exists」-メソッドを確認することをお勧めします。

このようにして、「C:\ A \ B \ C \ D ...」がすでに存在するかどうかを検出でき、存在しない場合は、Directory.Create(String directoryName) ...を使用して作成できます。

于 2012-04-23T11:06:04.403 に答える
1

Directory.CreateDirectoryがそれを処理します。

于 2012-04-23T11:06:09.943 に答える
1
 string folderPath = "C:\A\B\C\D"
 if (!System.IO.Directory.Exists(folderPath))
                System.IO.Directory.CreateDirectory(folderPath);
于 2012-04-23T11:06:11.320 に答える