存储文件名在std :: string变量中使用了boost库

and*_*Fan 1 c++ boost boost-filesystem

我想使用boost :: filesystem获取目录中所有文件的列表

我能够使用打印文件名,cout但我无法将文件名存储在字符串变量中.我也尝试过类型转换和strcpy,但没有一种方法可行.

以下是代码:

char dir[100] = "/home/harsh/";
namespace fs = boost::filesystem;

fs::directory_iterator start = fs::directory_iterator(dir);
fs::directory_iterator di = start;

for (; di != fs::directory_iterator(); ++di)
{
    std::cout << "hello .. " << di->path() << std::endl;

    //std::string strHarsh = di->path(); //Error
}
Run Code Online (Sandbox Code Playgroud)

Art*_*hur 5

尝试di->leaf()它应该转换为字符串

它还取决于你的boost版本,如果你使用的是文件系统v3,它将是: di->path().filename().string()