1

我想使用 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
}
4

2 回答 2

5

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

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

于 2012-11-16T09:16:24.247 回答
1

您可以使用 astd::ostringstream作为中间:

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

std::string path = os.str();
于 2012-11-16T09:18:32.620 回答