我需要创建一个目录,但是,我需要创建的目录是在另一个目录中。像这样:
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);
}
}
但是,我想知道,如果有更好的方法来使这个(更容易辨认)更快。
答案 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);
}
}
答案 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 );
如您所见,此过程会创建嵌套的子目录。
答案 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会为您完成。