Filenames.clear();
SimpleFilenames.clear();
DirName = bbGetInputIn();
- bool rec = bbGetInputRecursive();
- /*int nbFiles = */ Explore(DirName, rec);
+ /*int nbFiles = */ Explore(DirName, bbGetInputRecursive(), bbGetInputRecursiveLevel() );
CleanFilenames( DirName );
bbSetOutputOut(Filenames);
bbSetOutputOutSimple(SimpleFilenames);
bbSetInputIn(".");
bbSetInputRecursive(false);
bbSetInputType(0);
+ bbSetInputRecursiveLevel(999);
}
void FilesFromDirectory::bbUserInitializeProcessing()
-int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive)
+int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive, int recursiveLevel)
{
- int numberOfFiles = 0;
- std::string dirName = NormalizePath(dirpath);
- int tmpNumberOfFiles;
+ int numberOfFiles = 0;
+
+if (recursiveLevel>=0){
+
+ std::string dirName = NormalizePath(dirpath);
+ int tmpNumberOfFiles;
std::string fileName;
#ifdef _MSC_VER
WIN32_FIND_DATA fileData;
numberOfFiles++;
} // Type ALL_directories
- tmpNumberOfFiles = Explore(dirName+fileName, recursive);
+ tmpNumberOfFiles = Explore(dirName+fileName, recursive,recursiveLevel-1);
if ((bbGetInputType()==2)&&tmpNumberOfFiles==0)
{
std::string temp = dirName+fileName;
numberOfFiles++;
} // Type All_directories
- tmpNumberOfFiles = Explore( fileName, recursive);
+ tmpNumberOfFiles = Explore( fileName, recursive, recursiveLevel-1);
if ((bbGetInputType()==2)&&tmpNumberOfFiles==0)
{
Filenames.push_back(fileName);
}// closedir
#endif
+} // if recursiveLevel
return numberOfFiles;
}
BBTK_BLACK_BOX_INTERFACE(FilesFromDirectory,bbtk::AtomicBlackBox);
BBTK_DECLARE_INPUT(In,std::string);
BBTK_DECLARE_INPUT(Recursive,bool);
+ BBTK_DECLARE_INPUT(RecursiveLevel,int);
BBTK_DECLARE_INPUT(Type,int);
BBTK_DECLARE_INPUT(FileEnd,std::vector<std::string>);
BBTK_DECLARE_OUTPUT(Out,std::vector<std::string>);
private :
std::string NormalizePath(std::string const &pathname);
- int Explore(std::string const &dirpath, bool recursive);
+ int Explore(std::string const &dirpath, bool recursive, int recursiveLevel);
void CleanFilenames( std::string basePath );
/// List of file names
BBTK_CATEGORY("");
BBTK_INPUT(FilesFromDirectory,In,"Directory Name",std::string,"");
- BBTK_INPUT(FilesFromDirectory,Recursive,"Recursive directory exploration",bool,"");
- BBTK_INPUT(FilesFromDirectory,Type,"0=files 1=All_directories 2=last_directories (0 default)",int,"");
+ BBTK_INPUT(FilesFromDirectory,Recursive,"(default false) Recursive directory exploration",bool,"");
+ BBTK_INPUT(FilesFromDirectory,Type,"(0 default) 0=files 1=All_directories 2=last_directories ",int,"");
+ BBTK_INPUT(FilesFromDirectory,RecursiveLevel,"(999 default) Recursive level",int,"");
BBTK_INPUT(FilesFromDirectory,FileEnd,"Select just the files with this end file name",std::vector<std::string>,"");
BBTK_OUTPUT(FilesFromDirectory,Out,"FullPathNames of the files",std::vector<std::string>,"");