如何用子目录创建多个目录?

问题描述:

我有这个stuation。我想创建从根部12名的子目录,在索引1处从每个子目录30名的子目录和从索引2的每个子目录24名的子目录我知道:如何用子目录创建多个目录?

DirectoryInfo di = Directory.CreateDirectory(@"c:\Users\Public\Root"); 

创建一个子目录每次。如何做到一枪? (例如前30)。

它很难告诉你真正想要的,但是这可能意味着你在正确的方向

声明你的目录

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 
+0

我guettig此错误消息:参数2和3:不能从 '字符串' 转换为“System.Collections.Generic.List 。这是在使用中。我使用字符串来代替var。任何想法为什么? – Steve 2014-12-07 01:37:37

+0

我前段时间更新过,它有几个错误,现在尝试,我测试过它编译和工作 – 2014-12-07 01:42:11

+0

同样的问题。 VAR directoryList =新列表() { “DIR1”, “DIR2”, “DIR3” }; - >我得到:不能隐式地将类型'System.Collections.Generic.List '转换为'string'。我不得不写Convert.ToString(),但它没有工作。 – Steve 2014-12-07 01:49:27

没有办法一次创建多个独立目录。但是,请注意Directory.Create()方法将创建目标路径中指定的所有目录。例如。如果C:\Users\Public\Root目录为空,则调用Directory.Create(@"C:\Users\Public\Root\one\two\three");将创建所需的one,twothree子目录,全部在该单一调用中。

您可以利用它来创建所需的最低级目录,这至少可以避免初始的12个子目录操作。您仍然需要在单个呼叫中创建个人30,24等子目录。 (你的问题对你实际上想要做什么很模糊,所以我不能确切地说出会发生什么,除此之外,没有更多的细节)。