0

我有这种情况。我想从根目录创建 12 个子目录,从索引 1 的每个子目录创建 30 个子目录,从索引 2 的每个子目录创建 24 个子目录。我知道:

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

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

4

2 回答 2

2

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

您可以利用它来创建您需要的最低级别的目录,这至少可以避免最初的 12 个子目录操作。您仍然需要在单独的调用中创建单独的 30、24 等子目录。

(您的问题对于您实际尝试做的事情非常模糊,所以我无法准确地说出除此之外会发生什么,没有更多细节)。

于 2014-12-07T00:27:06.287 回答
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
于 2014-12-07T00:33:41.830 回答