使用 Google Drive Api 列出 GDrive 的文件和文件夹

Listing files and folders of GDrive using Google Drive Api

我想使用 Google 驱动器 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);
     }
 });

如果目录(在您的案例中为根目录)中存在的文件夹或文件不是由您的应用程序创建或之前由您的应用程序打开的,您将无法通过您的应用程序查看它们。这是因为您可能正在使用 Drive.FILE 范围:https://developers.google.com/drive/web/scopes

不幸的是,google 驱动器 android API 目前仅支持 drive.file 和 drive.appfolder 作用域。如果需要 drive.readonly.metadata 作用域,可以使用 Google Drive REST API。