X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fstd%2Fsrc%2FbbstdFilesFromDirectory.cxx;h=7ea9ae3757a8377c3111190c362da2952e5cd19e;hb=48ee43b2f4d49324798509b6358b86b3485d20a9;hp=e444b9ba1a84291479c94335389004a9c255b16d;hpb=d71e30c7ee2a27d090576edbc5bb51e4de96fe92;p=bbtk.git diff --git a/packages/std/src/bbstdFilesFromDirectory.cxx b/packages/std/src/bbstdFilesFromDirectory.cxx index e444b9b..7ea9ae3 100644 --- a/packages/std/src/bbstdFilesFromDirectory.cxx +++ b/packages/std/src/bbstdFilesFromDirectory.cxx @@ -50,8 +50,7 @@ void FilesFromDirectory::Process() 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); @@ -62,6 +61,7 @@ void FilesFromDirectory::bbUserSetDefaultValues() bbSetInputIn("."); bbSetInputRecursive(false); bbSetInputType(0); + bbSetInputRecursiveLevel(999); } void FilesFromDirectory::bbUserInitializeProcessing() @@ -103,11 +103,14 @@ std::string FilesFromDirectory::NormalizePath(std::string const &pathname) -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; @@ -130,7 +133,7 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive) 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; @@ -249,7 +252,7 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive) numberOfFiles++; } // Type All_directories - tmpNumberOfFiles = Explore( fileName, recursive); + tmpNumberOfFiles = Explore( fileName, recursive, recursiveLevel-1); if ((bbGetInputType()==2)&&tmpNumberOfFiles==0) { Filenames.push_back(fileName); @@ -277,6 +280,7 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive) }// closedir #endif +} // if recursiveLevel return numberOfFiles; }