我正在尝试使用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;
};
...
谢谢。
答案 0 :(得分:0)
根据@Casey和@rectummelancolique的建议,在makefile中的-lboost_filesystem之后添加-lboost_system后问题得以解决。