我正在做一个应用程序在qt/c++中,我想上传图像到一个特定的文件夹。我试图获得所有文件夹的列表,但它没有提供文件夹的名称。我想获得他们的名称,以便用户可以从文件夹列表中选择一个特定的文件夹,我可以上传到特定的folder.My代码:http://pastebin.com/dBGkpeEj在响应此代码时,我得到了kind,etag,foll list和items数组,其中每个项目都有foll。fields:kind=drive#childReference,id,自链接,子链接。我想要获取所有文件夹的名称
我自己解决了这个问题。下面是获取qt中所有文件夹和子文件夹列表的代码:
void googled::tryFolderListing(QNetworkReply *reply){
am = new QNetworkAccessManager;
QByteArray d = reply->readAll();
QString x = getValue(d,"access_token");
x = "Bearer " + x;
QUrl url("https://www.googleapis.com/drive/v2/files");
url.addQueryItem(QString("q").toAscii(),QString("mimeType = 'application/vnd.google-apps.folder'").toAscii());
QNetworkRequest request;
request.setUrl(url);
request.setRawHeader(QString("Content-Type").toAscii(),QString("application/json").toAscii());
request.setRawHeader(QString("Authorization").toAscii(),x.toAscii());
QObject::connect(am, SIGNAL(finished(QNetworkReply *)),
this, SLOT(uploadfinishedSlot(QNetworkReply *)));
am->get(request);}
发布于 2013-06-21 23:48:46
首先,如果您要与用户交互以从驱动器中选择特定的文件或文件夹,请使用Google Picker。实现你自己的选择器是非常低效和缓慢的。只需几行javascript代码,您就可以做您想做的事情。
其次,您使用的是children.list,它没有为文件提供足够的信息。您应该在query mimeType = 'application/vnd.google-apps.folder' and trashed = false中使用Files.list(),您将获得所需的所有文件夹信息。
第三,您忘记了实现pageToken。对于一些拥有大量文件/文件夹的用户,他们可能会点击maxResults,查询可能不会显示您想要的所有文件/文件夹。请深入查看示例代码。
https://stackoverflow.com/questions/17235677
复制相似问题