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

时间:2012-11-16 09:14:55

标签: 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
}

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

您可以使用std::ostringstream作为中间人:

std::ostringstream os;
os << di->path();

std::string path = os.str();