我想使用Google Drive API列出Google云端硬盘上目录的所有文件和文件夹。但我只获取文件的元数据对象而不是目录中存在的文件夹。我使用以下代码
DriveFolder folder = Drive.DriveApi.getRootFolder(getClient());
folder.listChildren(getClient())
.setResultCallback(new ResultCallback < DriveApi.MetadataBufferResult > () {@
Override
public void onResult(DriveApi.MetadataBufferResult result) {
if (!result.getStatus().isSuccess()) {
L.c("Error in listing root folder");
return;
}
MetadataBuffer metadataBuffer = result.getMetadataBuffer();
Metadata filedata;
ListItem[] items = new ListItem[metadataBuffer.getCount()];
L.c("Count :" + metadataBuffer.getCount());
for (int i = 0; i < metadataBuffer.getCount(); i++) {
items[i] = new ListItem(metadataBuffer.get(i));
}
listAdapter = new ArrayAdapter < ListItem > (ExplorerClass.this, android.R.layout.simple_list_item_1, items);
mainList.setAdapter(listAdapter);
}
});
答案 0 :(得分:4)
如果目录中存在的文件夹或文件(在您的案例根目录中)不是由您的应用创建的或之前由您的应用打开的,那么您将无法通过您的应用看到它们。这是因为您可能正在使用Drive.FILE范围:https://developers.google.com/drive/web/scopes
不幸的是,谷歌驱动Android API目前仅支持drive.file和drive.appfolder范围。如果您需要drive.readonly.metadata范围,则可以使用Google Drive REST API。