C++ Builder Snippets  

Verzeichnisse über mehrere Ebenen erstellen:
 
// Nachtrag: Da war jemand zu faul, in der Hilfe zu wühlen :)
// es geht natürlich auch viel einfacher:
#include <FileCtrl.hpp>
ForceDirectories("d:\\a\\b\\c\\d\\e\\");


//-------------------------------------------------------------------------
//  Erstellt das angegebene Verzeichnis auch über mehrere Verzeichnisebenen.
//  Parameter:    Vollstaendiger Verzeichnisname, z.B.: "C:\\abc\\def\\ghi"
//  Rückgabewert: true falls Ausfuehrung erfolgreich, ansonsten false
//-------------------------------------------------------------------------

bool CreateMultiLevelDir(AnsiString slDirName)
{
  AnsiString slTmpStr = EmptyStr;
  int ilPos = 0;

  if(slDirName[slDirName.Length()] != '\\') slDirName += "\\";

  if(slDirName.Length() >= 3)
  {
    if(DirectoryExists(slDirName.SubString(1,3)) && slDirName[3] == '\\')
    {
      slTmpStr += slDirName.SubString(1,3);
      slDirName = slDirName.SubString(4, slDirName.Length()-3);
      while(slDirName.Pos("\\") > 0)
      {
        ilPos = slDirName.Pos("\\");
        slTmpStr += slDirName.SubString(1,ilPos);
        slDirName = slDirName.SubString(ilPos+1, slDirName.Length()-ilPos);
        if(!DirectoryExists(slTmpStr))
        {
          if(!CreateDir(slTmpStr))
            return false;
        }
      }
      return true;
    }
    else return false;
  }
  else return false;
}



© '99-2000 by S. Kreutzmann