]> Creatis software - gdcm.git/blobdiff - Example/SplitIntoXCoherentDirectories.cxx
Allow strange file names
[gdcm.git] / Example / SplitIntoXCoherentDirectories.cxx
index 6e83fd58b61bb39891213464d89402e7843192a8..e8c45cd1517b7f5655de20c64c01de6231b6f6c2 100755 (executable)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: SplitIntoXCoherentDirectories.cxx,v $
   Language:  C++
-  Date:      $Date: 2009/05/28 15:44:34 $
-  Version:   $Revision: 1.4 $
+  Date:      $Date: 2011/04/20 14:06:50 $
+  Version:   $Revision: 1.6 $
  
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -50,7 +50,7 @@ int main(int argc, char *argv[])
    "       tag : group-elem    (in hexa, no space)                            ",
    "                       the user wants to split on                         ",
    "       sort :  user wants FileHelper to sort the images                   ",
-   "               Warning : will probabely crah if sort has no meaning       ",
+   "               Warning : will probabely crash if sort has no meaning      ",
    "                (not only look at image names)                            ",
    "       studyUID   : *aware* user wants to add the serie                   ",
    "                                             to an already existing study ",
@@ -149,13 +149,12 @@ int main(int argc, char *argv[])
 
    s->SetLoadMode(GDCM_NAME_SPACE::LD_ALL); // Load everything for each File
    s->SetDirectory(dirName, true);          // true : recursive exploration
-
-   GDCM_NAME_SPACE::File *f;
    
    GDCM_NAME_SPACE::DirList dirlist(dirName, true); // recursive exploration
    GDCM_NAME_SPACE::DirListType fileNames = dirlist.GetFilenames();
-
    GDCM_NAME_SPACE::FileList *l = new GDCM_NAME_SPACE::FileList;
+
+   GDCM_NAME_SPACE::File *f;
 // Loop on all the gdcm-readable files
    for (GDCM_NAME_SPACE::DirListType::iterator it = fileNames.begin();
                                     it != fileNames.end();
@@ -189,7 +188,7 @@ int main(int argc, char *argv[])
       if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(dirNameout) )    // dirout not found
       {
          std::string strDirNameout(dirNameout);          // to please gcc 4
-         systemCommand = "mkdir " +strDirNameout;        // create it!
+         systemCommand = "mkdir \"" +strDirNameout + "\"";        // create it!
          if (verbose)
             std::cout << systemCommand << std::endl;
          system (systemCommand.c_str());
@@ -278,7 +277,7 @@ int main(int argc, char *argv[])
                 std::cout << "[" << currentSerieWriteDir<< "]" << std::endl;
             // if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(currentSerieWriteDir) )
              {     
-                systemCommand   = "mkdir " + currentSerieWriteDir;
+                systemCommand   = "mkdir \"" + currentSerieWriteDir + "\"";
                 system( systemCommand.c_str());
                 if (verbose)
                    std::cout <<  "1 " <<systemCommand << std::endl;
@@ -318,7 +317,7 @@ int main(int argc, char *argv[])
                 xCoherentWriteDir = currentSerieWriteDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR+ xCoherentName;
                // if ( ! GDCM_NAME_SPACE::DirList::IsDirectory(xCoherentWriteDir) )
                 {      
-                   systemCommand   = "mkdir " + xCoherentWriteDir;
+                   systemCommand   = "mkdir \"" + xCoherentWriteDir + "\"";
                    system( systemCommand.c_str());
                    if (verbose)
                       std::cout << "2 " << systemCommand << std::endl;       
@@ -380,7 +379,7 @@ int main(int argc, char *argv[])
                }
                else if (copy)
                {
-                   systemCommand   = "cp " + fileName + " " + filenameout;
+                   systemCommand   = "cp \"" + fileName + "\" " + filenameout + "\"";
                    system( systemCommand.c_str());
                }
                if (verbose)