我有这个问题。我想从根目录创建12个子目录,从索引1的每个子目录创建30个子目录,从索引2的每个子目录创建24个子目录。我知道:
DirectoryInfo di = Directory.CreateDirectory(@"c:\Users\Public\Root");
每次都创建一个子目录。如何一次性完成? (例如前30个)。
答案 0 :(得分:2)
没有方法可以同时创建多个独立的目录。但请注意,Directory.Create()
方法将创建目标路径中指定的所有目录。例如。如果C:\Users\Public\Root
目录为空,则调用Directory.Create(@"C:\Users\Public\Root\one\two\three");
将在该单个调用中创建所需的one
,two
和three
子目录。
您可以利用它来创建您需要的最低级别目录,这至少可以避免最初的12个子目录操作。您仍然需要在单个调用中创建单独的30,24等子目录。
(你的问题非常含糊,关于你真正想要做的事情,所以我无法确切地说出除此之外会发生什么,没有更多细节。)
答案 1 :(得分:0)
很难说出你真正想要的是什么,但这可能会指出你正确的方向
声明您的目录
var rootDir = @"C:\SomeRoot";
var directoryList = new List<string>()
{
"dir1",
"dir2",
"dir3"
};
var subDirectoryList = new List<string>()
{
"subDir1",
"subDir2",
"subDir3"
};
方法
private void CreateDirectories(string root, List<String> directoryList, List<String> subDirectoryList)
{
foreach (var dir in directoryList)
{
var currentDir = Path.Combine(root, dir);
foreach (var subDir in subDirectoryList)
{
Directory.CreateDirectory(Path.Combine(currentDir, subDir));
}
}
}
用法
CreateDirectories(rootDir,directoryList,subDirectoryList)
输出
C:\SomeRoot\dir1\subDir1
C:\SomeRoot\dir1\subDir2
C:\SomeRoot\dir1\subDir3
C:\SomeRoot\dir2\subDir1
C:\SomeRoot\dir2\subDir2
C:\SomeRoot\dir2\subDir3