]> Creatis software - bbtk.git/blobdiff - packages/std/src/bbstdFilesFromDirectory.cxx
#3043 BBTK Bug New Normal - FilesFromDirectoryBox missing directories AND Refresh...
[bbtk.git] / packages / std / src / bbstdFilesFromDirectory.cxx
index 5f8feb37b04ff2457e740bfa8fab730726478bd3..7560fd896335b377d8a6803593fc3d2304aee2a9 100644 (file)
@@ -47,8 +47,6 @@ BBTK_BLACK_BOX_IMPLEMENTATION(FilesFromDirectory,bbtk::AtomicBlackBox);
 
 void FilesFromDirectory::Process()
 {
-printf("EED FilesFromDirectory::Process Start\n");
-
        Filenames.clear();
        SimpleFilenames.clear();
        DirName         = bbGetInputIn();
@@ -57,8 +55,6 @@ printf("EED FilesFromDirectory::Process Start\n");
        CleanFilenames( bbGetInputIn() );
        bbSetOutputOut(Filenames);   
        bbSetOutputOutSimple(SimpleFilenames);   
-
-printf("EED FilesFromDirectory::Process End\n");
 }
 
 void FilesFromDirectory::bbUserSetDefaultValues()
@@ -143,7 +139,15 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive)
                        } // Type Lsast_directories
                        
                        numberOfFiles           =       numberOfFiles + tmpNumberOfFiles;
-         } // if
+         } // if recursive
+         if ( fileName != "." && fileName != ".." && !recursive )
+                       if ((bbGetInputType()==1) || (bbGetInputType()==2))
+                       {
+                       std::string temp = dirName+fileName;
+                       Filenames.push_back(temp);       
+                       numberOfFiles++;
+                       } // Type All_directories
+               }// fileName && !recursive
       } else  {
 //      std::string temp = "\"" +dirName+fileName + "\"";
         std::string temp = dirName+fileName;
@@ -236,7 +240,7 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive)
                                } // Type files
                } // d_name
        } else if ( S_ISDIR(buf.st_mode) ) {  //directory?
-               if ( d->d_name[0] != '.' && recursive ) //we also skip hidden files
+               if ( (d->d_name[0]!='.') && recursive ) //we also skip hidden files
                {
                                if (bbGetInputType()==1)
                                {
@@ -251,7 +255,16 @@ int FilesFromDirectory::Explore(std::string const &dirpath, bool recursive)
                                numberOfFiles++;
                                } // Type Lsast_directories
                        numberOfFiles           = numberOfFiles+tmpNumberOfFiles;
-               } // d_name
+               }// d_name && recursive
+               if ( (d->d_name[0]!='.') && !recursive ) { //we also skip hidden files
+                               if ((bbGetInputType()==1) || (bbGetInputType()==2))
+                               {
+                       Filenames.push_back(fileName);   
+                               numberOfFiles++;
+                               } // Type All_directories
+                       
+                       }// d_name && !recursive
+
                } else {
                //gdcmErrorMacro( "Unexpected error" );
                return -1;