#include "bbstdFilesFromDirectory.h"
#include "bbstdPackage.h"
+#include <string>
#ifdef _MSC_VER
#include <windows.h>
void FilesFromDirectory::Process()
{
-
DirName = bbGetInputIn();
bool rec = bbGetInputRecursive();
/*int nbFiles = */ Explore(DirName, rec);
- bbSetOutputOut(Filenames);
+ bbSetOutputOut(Filenames);
-
+// for (int i=0; i<Filenames.size(); i++)
+// std::cout << "Filenames [" << i << "] = [" << Filenames[i] << "]" << std::endl;
}
-void FilesFromDirectory::bbUserConstructor()
-{
+void FilesFromDirectory::bbUserSetDefaultValues()
+{
bbSetInputIn(".");
- bbSetInputRecursive(false);
-
+ bbSetInputRecursive(false);
}
-void FilesFromDirectory::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
-{
-
+void FilesFromDirectory::bbUserInitializeProcessing()
+{
}
-void FilesFromDirectory::bbUserDestructor()
-{
-
+void FilesFromDirectory::bbUserFinalizeProcessing()
+{
}
-
+
/**
* \brief Add a SEPARATOR to the end of the name if necessary
* @param pathname file/directory name to normalize
// Need to check for . and .. to avoid infinite loop
if ( fileName != "." && fileName != ".." && recursive )
{
- numberOfFiles += Explore(dirName+fileName,recursive);
+ numberOfFiles += Explore(dirName+fileName, recursive);
}
}
else
{
- Filenames.push_back(dirName+fileName);
+ std::string temp = "\"" +dirName+fileName + "\"";
+ std::string::size_type spacePosition = temp.find_first_of(' ');
+ if (spacePosition != std::string::npos)
+ {
+ std::cout << "=========================================== File name : [" <<temp <<
+ "] contains space(s); Discarted !" << std::endl;
+ temp.insert(spacePosition, "\\");
+ continue; /// \TODO : fix the trouble (vtk?)
+ }
+ Filenames.push_back(temp);
numberOfFiles++;
}
}
for (d = readdir(dir); d; d = readdir(dir))
{
fileName = dirName + d->d_name;
+ std::string temp = fileName;
if( stat(fileName.c_str(), &buf) != 0 )
{
//gdcmErrorMacro( strerror(errno) );
}
if ( S_ISREG(buf.st_mode) ) //is it a regular file?
{
- Filenames.push_back( fileName );
- numberOfFiles++;
+ if ( d->d_name[0]!='.')
+ {
+
+ std::string::size_type /* long int */ spacePosition = temp.find_first_of(' ');
+ if (spacePosition != std::string::npos)
+ {
+ std::cout << "=========================================== File name : [" <<temp <<
+ "] contains space(s); Discarted !" << std::endl;
+ temp.insert(spacePosition, "\\");
+ continue; /// \TODO : fix the trouble (vtk?)
+ }
+ Filenames.push_back(temp);
+ numberOfFiles++;
+ }
}
else if ( S_ISDIR(buf.st_mode) ) //directory?
{