2013-08-14 14 views

risposta

19

Sì, mentre l'iterazione di directory, è possibile verificare i nomi sulla vostra lista di esclusione e utilizzare il no_push() membro del iteratore ricorsiva per evitare che andare in un tale directory, qualcosa di simile:

void selective_search(const path &search_here, const std::string &exclude_this_directory) 
{ 
    using namespace boost::filesystem; 
    recursive_directory_iterator dir(search_here), end; 
    while (dir != end) 
    { 
     // make sure we don't recurse into certain directories 
     // note: maybe check for is_directory() here as well... 
     if (dir->path().filename() == exclude_this_directory) 
     { 
      dir.no_push(); // don't recurse into this directory. 
     } 

     // do other stuff here.    

     ++dir; 
    } 
} 
+0

è è possibile filtrare la directory basata su symlink. Non voglio cercare nel file symlink – user765443

Problemi correlati