Search code examples
c#iosubdirectorycreate-directory

How to create mutiple directories with sub-directories?


I have this stuation. I would like to create 12 subdirectories from the root, 30 subdirectories from each subdirectory at index 1 and 24 subdirectories from each subdirectory at index 2. I know that:

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

creates one subdirectory everytime. How to do that in one shot? (just for example the first 30).


Solution

  • It's hard to tell what you actually want, however this might point you in the right direction.

    Declare your directories:

    var rootDir = @"C:\SomeRoot";
    
    var directoryList = new List<string>()
    {
       "dir1",
       "dir2",
       "dir3"
    };
    var subDirectoryList = new List<string>()
    {
       "subDir1",
       "subDir2",
       "subDir3"
    };
    

    Method

    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));
          }
    
       }
    }
    

    Usage

    CreateDirectories(rootDir,directoryList,subDirectoryList)
    

    Output

    C:\SomeRoot\dir1\subDir1
    C:\SomeRoot\dir1\subDir2
    C:\SomeRoot\dir1\subDir3
    C:\SomeRoot\dir2\subDir1
    C:\SomeRoot\dir2\subDir2
    C:\SomeRoot\dir2\subDir3