如何创建具有子目录的多个目录

本文关键字:子目录 何创建 创建 | 更新日期: 2023-09-27 18:33:19

我有这个研究。我想从根目录创建 12 个子目录,从索引 1 的每个子目录创建 30 个子目录,从索引 2 的每个子目录创建 24 个子目录。我知道那件事:

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

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

如何创建具有子目录的多个目录

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

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

(你的问题对你实际想要做什么非常模糊,所以我不能确切地说出除此之外会发生什么,没有更多细节)。

很难说出你真正想要什么,但这可能会为你指明正确的方向。

声明您的目录:

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