for (fs::directory_iterator iter(realPath); iter != end_iter; ++iter )
{
if (iter->path().extension() == ".png"){
fs::path currentPath = iter->path();
const char *filename = const_cast<char*>(currentPath.string().c_str());
std::cout << iter->path().leaf() << std::endl;
processFile(filename);
std::cout <<"Hi" << std::endl;
}
}
这是我的代码,这里processFile函数接受char *格式的文件名。上面的代码返回文件名的垃圾值。不知道获取文件名的最佳方法是什么。
答案 0 :(得分:0)
这对我来说很好(Boost.1.52,Mac OS X,clang)。
虽然我不得不同意米格尔的意见,但你在这里做了很多工作。
for (fs::directory_iterator iter(realPath); iter != end_iter; ++iter )
if (iter->path().extension() == ".png") {
fs::path currentPath = iter->path();
std::cout << currentPath.leaf() << std::endl;
processFile(currentPath.c_str ());
}
根据您对代码的喜好,您可以完全摆脱currentPath
(将其替换为iter->path()
)