创建目录

时间:2013-02-20 12:37:33

标签: c# directory

我需要创建一个目录,但是,我需要创建的目录是在另一个目录中。像这样:

        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);
        }
    }

但是,我想知道,如果有更好的方法来使这个(更容易辨认)更快。

6 个答案:

答案 0 :(得分:3)

Directory.Create("c:\teste\teste\teste\teste");应该工作

答案 1 :(得分: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);
}

答案 2 :(得分: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);
    }
}

Source

答案 3 :(得分:2)

我选择的方法是:

DirectoryInfo di = new DirectoryInfo(@"teste\teste\teste\teste\");
di.Create();

答案 4 :(得分:1)

对于这个过程,你的方式太复杂了。您也不必使用Split()方法来创建此类目录。

您可以像使用它一样使用

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

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

如您所见,此过程会创建嵌套的子目录。

enter image description here

答案 5 :(得分: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 loop 创建每个目录,因为CreateDirectory会为您完成。