创建目录
我需要创建一个目录,但是,当我需要创建的目录位于另一个目录内时。事情是这样的:创建目录
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);
}
}
但是,我想知道,如果有更多更好的方式来使这个(更清晰),更快速。
Directory.Create("c:\teste\teste\teste\teste");
应该workt
根据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);
}
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);
}
}
我选择的方法是:
DirectoryInfo di = new DirectoryInfo(@"teste\teste\teste\teste\");
di.Create();
由于不需要'di.Exists'检查。 'Create()'如果它已经存在,什么也不做。 – 2013-02-20 12:46:30
你的方法是让这个过程太复杂了。您也不必使用Split()
方法来创建这种类型的目录。
你可以像使用它;
string tempFolderAbsolutePath = @"C:\Temp";
string subFolderRelativePath = @"teste\teste\teste\teste\";
DirectoryInfo tempFolder = new DirectoryInfo(tempFolderAbsolutePath);
DirectoryInfo subFolder = tempFolder.CreateSubdirectory(subFolderRelativePath);
正如你所看到的,这个过程中产生嵌套子目录。
如果你的当前目录(比如C:\
),你要创建一个目录作为C:\A\B\C
,那么我认为最好的办法是使用
Directory.CreateDirectory(@"\A\B\C");
如果您需要在目录另一根(说,D:\
),那么你需要给完整的路径为
Directory.CreateDirectory(@"D:\A\B\C");
You do not need to have a for loop
创建每个目录为CreateDirectory为您做。
第一个字符串对我来说工作正常......当你使用它时会出现什么问题? – Rawling 2013-02-20 12:42:28
没有这个答案没有解决你的问题吗? – 2013-02-20 12:55:51