如何从boost路径获取char * filename

时间:2012-12-30 04:25:18

标签: boost

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 *格式的文件名。上面的代码返回文件名的垃圾值。不知道获取文件名的最佳方法是什么。

1 个答案:

答案 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()