0

我正在尝试使用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;
        };
...

谢谢你。

4

1 回答 1

0

正如@Casey 和@rectummelancolique 所建议的那样,在makefile 中的-lboost_filesystem 之后添加-lboost_system 后问题得到解决。

于 2013-06-17T16:11:57.050 回答