解决方法
是的,在遍历目录的同时,您可以测试排除列表中的名称,并使用递归迭代器的no_push()成员阻止它进入这样的目录,如下所示:
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; } }