提高::文件系统:: recursive_directory_iterator带过滤器 [英] boost::filesystem::recursive_directory_iterator with filter
本文介绍了提高::文件系统:: recursive_directory_iterator带过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要递归获得目录中的所有文件和它的子目录,但不包括几个目录。我知道他们的名字。是否有可能做的boost ::文件系统:: recursive_directory_iterator?
I need to recursively get all files from directory and it's subdirectory, but excluding several directory. I know their names. Is it possible to do with boost::filesystem::recursive_directory_iterator ?
推荐答案
是的,在遍历目录,您可以测试您的排除列表上的名字,并使用 no_push()
从进入这样的目录递归迭代器prevent它的成员,是这样的:
Yes, while iterating over directories, you can test for the names on your exclusion list and use the no_push()
member of the recursive iterator to prevent it from going into such a directory, something like:
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;
}
}
这篇关于提高::文件系统:: recursive_directory_iterator带过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文