【问题标题】:boost::filesystem::recursive_directory_iterator with filterboost::filesystem::recursive_directory_iterator 带过滤器
【发布时间】:2013-08-14 22:01:16
【问题描述】:

我需要递归地从目录及其子目录中获取所有文件,但不包括几个目录。我知道他们的名字。是否可以使用 boost::filesystem::recursive_directory_iterator ?

【问题讨论】:

    标签: c++ boost


    【解决方案1】:

    是的,在遍历目录时,您可以测试排除列表中的名称并使用递归迭代器的 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;
        }
     }
    

    【讨论】:

    • 是否可以根据符号链接过滤目录。我不想在符号链接文件中搜索
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2018-02-09
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多