X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOTreeHandlerImageAdder.cpp;h=f5424b63ca63d920e39ea9d7258b41afb4aaddd4;hb=42f7c93a6f8fc2beeb8709be1b3616ec40f4699e;hp=800a8b8f08ae65223edc8a4b0ebc4e02eaa87f64;hpb=71365e2ce56b1ccf93054818d5d5cf64bcbaafb4;p=creaImageIO.git diff --git a/src2/creaImageIOTreeHandlerImageAdder.cpp b/src2/creaImageIOTreeHandlerImageAdder.cpp index 800a8b8..f5424b6 100644 --- a/src2/creaImageIOTreeHandlerImageAdder.cpp +++ b/src2/creaImageIOTreeHandlerImageAdder.cpp @@ -1,8 +1,15 @@ #include #include #include "boost/filesystem.hpp" +#include +#include + namespace fs = boost::filesystem; +using boost::filesystem::path; +using boost::next; +using boost::prior; + //using namespace crea; @@ -90,7 +97,8 @@ namespace creaImageIO mProgress.IncNumberScannedDirs(); if ( !fs::exists( dirpath ) ) return; - + time_t lastModif=fs::last_write_time(dirpath); + fs::directory_iterator end_itr; // default construction yields past-the-end for ( fs::directory_iterator itr( dirpath ); itr != end_itr; @@ -99,24 +107,32 @@ namespace creaImageIO // If is directory & recurse : do recurse if ( fs::is_directory(itr->status()) ) { - if (recursive) AddDirectoryRecursor( itr->string(), recursive); + if (recursive) + { + AddDirectoryRecursor( itr->string(), recursive); + } } else { - mProgress.IncNumberScannedFiles(); - if (IsHandledFile(itr->string())) - { - mProgress.IncNumberHandledFiles(); - AddFile( itr->string() ); - } - mProgressSignal(mProgress); - if (mProgress.GetStop()) - { - //itr = end_itr; - break; - } + bool valid=mTimestampHandler->AddDirectory(dirpath, itr->string(), lastModif, time(0)); + if(valid) + { + mProgress.IncNumberScannedFiles(); + if (IsHandledFile(itr->string())) + { + mProgress.IncNumberHandledFiles(); + AddFile( itr->string() ); + } + mProgressSignal(mProgress); + if (mProgress.GetStop()) + { + //itr = end_itr; + break; + } + } } } + } //=======================================================================