2

ディレクトリを作成する必要がありますが、作成する必要があるディレクトリは別のディレクトリ内にあります。このようなもの:

        Directory.CreateDirectory(@"teste\teste\teste\teste\");

基本的に、このディレクトリは存在しませんが(もちろん)、CreateDirectory(...)この文字列スタイルをサポートしていません。このディレクトリを作成するにはどうすればよいですか?

これを作る私の方法はそれです:

    private void createdir(string _path)
    {
        string path = string.Empty;
        string[] dir = _path.Split('\\');

        for(int i=0;i<dir.Length;i++)
        {
            path += dir[i] + "\\";
            Directory.CreateDirectory(path);
        }
    }

しかし、これ(より読みやすい)をより迅速にするためのより良い方法があるかどうかを知りたいです。

4

6 に答える 6

3

Directory.Create("c:\teste\teste\teste\teste");うまくいくはず

于 2013-02-20T12:44:54.673 に答える
2

MSDNによると、ディレクトリをネストできます。CreateDirectory

 Directory.CreateDirectory("Public\\Html");
     Directory.CreateDirectory("\\Users\\User1\\Public\\Html");
     Directory.CreateDirectory("c:\\Users\\User1\\Public\\Html"); // using verbatim string you can escape slashes


if(System.IO.Directory.Exists(yourPath))
{
  Directory.CreateDirectory(yourPath);
}
于 2013-02-20T12:41:29.557 に答える
2

Directory.CreateDirectory()を使用して、パスで指定されたディレクトリとサブディレクトリを作成できます。

次に例を示します。

static void Main(string[] args)
{
    try
    {
        Directory.CreateDirectory(@"D:\ParentDir\ChildDir\SubChildDir\");
        Console.WriteLine("Directories Created");
        Console.ReadLine();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

ソース

于 2013-02-20T12:41:38.363 に答える
2

私が選んだ方法は次のとおりです。

DirectoryInfo di = new DirectoryInfo(@"teste\teste\teste\teste\");
di.Create();
于 2013-02-20T12:43:05.137 に答える
1

あなたのやり方はこのプロセスには複雑すぎます。Split()この種のディレクトリを作成するためにもメソッドを使用する必要はありません。

あなたはそれを次のように使うことができます。

string tempFolderAbsolutePath = @"C:\Temp";
string subFolderRelativePath = @"teste\teste\teste\teste\";

DirectoryInfo tempFolder = new DirectoryInfo( tempFolderAbsolutePath );
DirectoryInfo subFolder = tempFolder.CreateSubdirectory( subFolderRelativePath );

ご覧のとおり、このプロセスはネストされたサブディレクトリを作成します。

ここに画像の説明を入力してください

于 2013-02-20T12:46:20.213 に答える
1

現在のディレクトリが(たとえばC:\)で、ディレクトリをとして作成する場合はC:\A\B\C、次を使用するのが最善の方法だと思います。

Directory.CreateDirectory(@"\A\B\C");

別のルート(たとえば)にディレクトリが必要な場合はD:\、フルパスを次のように指定する必要があります。

Directory.CreateDirectory(@"D:\A\B\C");

do not need to have a for loopCreateDirectoryが行うように、各ディレクトリを作成します。

于 2013-02-20T12:49:40.727 に答える