boost::filesystem::file_size()
返回boost::uintmax_t
。那么,如何将boost::uintmax_t
转换为std::string
?
答案 0 :(得分:1)
嗯,你可以使用一些简单的方法,如:
boost::lexical_cast<std::string>(size);
或手动使用stringstream:
static_cast<std::stringstream>(std::stringstream() << size).str()
数字运算符是成员,因此即使在C ++ 03中它也应该是临时的;其他一些重载是自由函数,而在C ++ 03中则不接受临时函数,但你可以使用std::stringstream().flush()
,它返回 lvalue 引用,而不是所有operator<<
重载工作
但这不仅仅是简单的数字。它的文件大小。因此,您很可能应该将其舍入并处理kB / MB / GB / KiB / MiB / GiB单位。在这种情况下,请查看libkibi。