X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src2%2FcreaImageIOTreeHandlerImageAdder.cpp;h=f68fa778119294e18ab1043af820143868dbfae4;hb=cc5a912f64e8de1f90d9ef0956633515a46d31ae;hp=057f16eb51e994563a107e3d0f7bfd374c17ba37;hpb=139340305dd41bfdfff00f02a8c8c59241d14cb1;p=creaImageIO.git diff --git a/src2/creaImageIOTreeHandlerImageAdder.cpp b/src2/creaImageIOTreeHandlerImageAdder.cpp index 057f16e..f68fa77 100644 --- a/src2/creaImageIOTreeHandlerImageAdder.cpp +++ b/src2/creaImageIOTreeHandlerImageAdder.cpp @@ -1,9 +1,17 @@ #include -#include -#include -#include +#include +#include "boost/filesystem.hpp" +#include +#include -using namespace crea; + +namespace fs = boost::filesystem; +using boost::filesystem::path; +using boost::next; +using boost::prior; + + +//using namespace crea; namespace creaImageIO { @@ -42,6 +50,7 @@ namespace creaImageIO std::vector::const_iterator i; for (i=filenames.begin();i!=filenames.end();++i) { + mTimestampHandler->AddFile((*i), fs::last_write_time(*i), time(0)); mProgress.IncNumberScannedFiles(); if (IsHandledFile(*i)) { @@ -60,16 +69,13 @@ namespace creaImageIO { mProgress.Reset(); AddDirectoryRecursor( directory, recurse ); + GimmickDebugMessage(3,mProgress< attr; mTreeHandler->GetTree().GetDescriptor().BuildAttributeMap(attr); @@ -87,53 +93,50 @@ namespace creaImageIO void TreeHandlerImageAdder::AddDirectoryRecursor(const std::string &dirpath, bool recursive) { + GimmickDebugMessage(4,"Scanning '"<status()) ) { - mProgress.IncNumberHandledFiles(); - AddFile( ffn ); + if (recursive) + { + AddDirectoryRecursor( itr->string(), recursive); + } } - mProgressSignal(mProgress); - cont = ( dir.GetNext(&filename) && (!mProgress.GetStop()) ); - } - - // Recurse into subdirs - if ( recursive ) - { - cont = dir.GetFirst(&filename, wxEmptyString, - wxDIR_DIRS | wxDIR_HIDDEN ); - while ( cont ) + else { - wxFileName wxffn(dir.GetName(),filename); - std::string ffn = wx2std(wxffn.GetFullPath()); - AddDirectoryRecursor( ffn, recursive); - cont = dir.GetNext(&filename); + std::string parent_id; + bool valid=mTimestampHandler->AddDirectory(dirpath, itr->string(), lastModif, time(0)); + if(valid) + { + mProgress.IncNumberScannedFiles(); + if (IsHandledFile(itr->string())) + { + mProgress.IncNumberHandledFiles(); + AddFile( itr->string() ); + mTreeHandler->GetTopLevelNodeId("FullFileName",itr->string(),parent_id); + mTimestampHandler->SetAttribute("TopLevelNodeId",parent_id,"PATH",itr->string()); + } + mProgressSignal(mProgress); + if (mProgress.GetStop()) + { + //itr = end_itr; + break; + } + } + mTimestampHandler->SetAttribute("TopLevelNodeId",parent_id,"PATH",dirpath); } } - + } //=======================================================================