Creating Mulitple Levels of Directories 

 

I was writing a custom installation script and needed to create many sub directories. I looked at Brad Gutilla's article and thought that there had to be a simpler method. Recursion steps in and saves the day. Not much to say about the code, as it is pretty simple and easy to follow. 

void CreateAllDirectories(CString strDir)

{

 // remove ending / if exists

 if(strDir.Right(1)=="\\")

  strDir=strDir.Left(strDir.GetLength()-1); 

 // base case . . .if directory exists

 if(GetFileAttributes(strDir)!=-1) 

  return;

 // recursive call, one less directory

 int nFound = strDir.ReverseFind('\\');

 CreateAllDirectories(strDir.Left(nFound)); 

 // actual work

 CreateDirectory(strDir,NULL); 

}