Program: gdcm
Module: $RCSfile: SplitIntoXCoherentDirectories.cxx,v $
Language: C++
- Date: $Date: 2009/05/28 15:44:34 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2011/08/25 14:37:05 $
+ Version: $Revision: 1.8 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
{
START_USAGE(usage)
- "\n exXCoherentFileSet :\n ",
+ "\n SplitIntoXCoherentDirectories :\n ",
"Shows the various 'XCoherent' Filesets within a directory ",
"Optionaly copies the images in a Directories tree ",
"usage: exXCoherentFileSet {dirin=inputDirectoryName} ",
" 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 ",
GDCM_NAME_SPACE::SerieHelper *s;
s = GDCM_NAME_SPACE::SerieHelper::New();
+ GDCM_NAME_SPACE::File *f;
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;
+
+ std::string replaceChar("_");
// Loop on all the gdcm-readable files
for (GDCM_NAME_SPACE::DirListType::iterator it = fileNames.begin();
it != fileNames.end();
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());
// Just not to make too many modif in the code
//serieUID = "SingleSerie"; // s->GetCurrentSerieUIDFileSetUID();
serieUID = s->GetCurrentSerieUIDFileSetUID();
-
GDCM_NAME_SPACE::Util::ReplaceSpecChar(serieUID, rep);
// --- for write
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;
GDCM_NAME_SPACE::Util::ReplaceSpecChar(xCoherentName, rep);
// --- for write
if (write || copy)
- {
+ {
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;
}
}
// --- end for write
-
- if (ori)
+
+ if (ori)
std::cout << "Orientation : ";
- else if (pos)
+ else if (pos)
std::cout << "Position : ";
- else if (groupelem != 0)
+ else if (groupelem != 0)
std::cout << "Tag (" << std::hex << groupelem[0]
<< "|" << groupelem[1] << ") value : ";
std::cout << "[" << (*i).first << "]" << std::endl;
fileName = (*it2)->GetFileName();
// --- for write
lastFilename = GDCM_NAME_SPACE::Util::GetName( fileName );
+
+ // If you want to create file names of your own, here is the place!
+ // Just replace 'lastFilename' by anything that's better for you.
+ GDCM_NAME_SPACE:: Util::ReplaceSpecChar(lastFilename, replaceChar);
+
filenameout = xCoherentWriteDir + GDCM_NAME_SPACE::GDCM_FILESEPARATOR+ lastFilename;
if (write)
{
}
else if (copy)
{
- systemCommand = "cp " + fileName + " " + filenameout;
+ systemCommand = "cp \"" + fileName + "\" \"" + filenameout + "\"";
system( systemCommand.c_str());
}
if (verbose)