OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);
std::string nextMarker = "";
bool a=true;
do {
/* 列举文件 */
ListObjectsRequest request(BucketName);
/* 设置正斜线(/)为文件夹的分隔符 */
request.setDelimiter("/");
request.setEncodingType("url");
request.setPrefix(keyPrefix);
request.setMarker(nextMarker);
auto outcome = client.ListObjects(request);
a = outcome.result().IsTruncated();
if (!outcome.isSuccess()) {
/* 异常处理 */
std::cout << "ListObjects fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
break;
}
/* for (const auto& object : outcome.result().ObjectSummarys()) {
std::cout << "object" <<
",name:" << object.Key() <<
",size:" << object.Size() <<
",lastmodify time:" << object.LastModified() << std::endl;
}*/
for (const auto& commonPrefix : outcome.result().CommonPrefixes()) {
std::cout << "commonPrefix" << ",name:" << **commonPrefix **<< std::endl;
}
nextMarker = outcome.result().NextMarker();
} while (a);
#include #include std::wstring utf8string2wstring(const std::string& str) { static std::wstring_convert< std::codecvt_utf8<wchar_t> > strCnv; return strCnv.from_bytes(str); }
因为返回的是UTF8格式,所以要进行编码转换。用上面的函数将 object.Key() 转换成wstring ,这样中文就不乱吗了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。