使用带有C ++ boost库的directory_iterator列出和获取文件名的问题

时间:2013-06-17 15:42:52

标签: c++ boost

我正在尝试使用boost库中的目录迭代器,我想创建一个循环,我遍历一个目录并将文件名放在一个变量中,我之前可以使用leaf()函数,但现在它已弃用。我不能使用path()。filename()甚至可以使用native()和string(),因为C编译器给了我错误。我如何修复下面的代码?

boost::filesystem::directory_iterator end_iter;
for (boost::filesystem::directory_iterator file(dir);file != end_iter;++file)
{
        /*check if file is image */ 
        string fileName=file->path().filename().native(); //the error happens here
        // i can use path().filename().string() either
        boost::match_results<string::const_iterator> what;
        if (0 == boost::regex_search(fileName, what, e, boost::match_default)) 
        {
            continue;
        };
...
谢谢。

1 个答案:

答案 0 :(得分:0)

根据@Casey和@rectummelancolique的建议,在makefile中的-lboost_filesystem之后添加-lboost_system后问题得以解决。