我想使用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
}
答案 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();