0

我正在使用 qt/c++ 制作应用程序,我想将图像上传到特定文件夹。我试图获取所有文件夹的列表,但它没有提供文件夹的名称。我想获取它们的名称,以便用户可以选择文件夹列表中的特定文件夹,我可以上传到该特定文件夹。我的代码:http ://pastebin.com/dBGkpeEj 响应此代码,我得到 kind、etag、selflink 和 items 数组,其中每个项目都有foll。字段:kind=drive#childReference、id、selflink、childlink。我想获取
我自己解决的所有文件夹的名称。这是获取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);

}

4

1 回答 1

2

首先,如果您正在与用户交互以从 Drive 中选择特定文件或文件夹,请使用Google Picker。实现你自己的选择器效率很低而且很慢。只需几行 javascript 代码,您就可以完全按照您的意愿行事。

其次,您使用的 children.list 没有为文件提供足够的信息。您应该将Files.list()与查询一起使用mimeType = 'application/vnd.google-apps.folder' and trashed = false,您将获得所需的所有文件夹信息。

第三,你忘了实现pageToken。对于一些拥有大量文件/文件夹的用户,他们可能会点击 maxResults 并且查询可能不会显示您想要的所有文件/文件夹。请更深入地查看示例代码。

于 2013-06-21T15:48:46.173 回答