有没有办法使用 Google 驱动器 API 获取文件名?

Is there a way to get the name of a file using the Google Drive API?

假设我使用 Google 驱动器 API 到 select 我想打开的文件。我有这样的代码:

// Getting the drive ID for the file
        DriveId driveId = (DriveId) data
                .getParcelableExtra(OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);

        // Getting the selected file
        DriveFile googleDriveFile = Drive.DriveApi.getFile(googleApiClient,
                driveId);

        googleDriveFile.open(googleApiClient, DriveFile.MODE_READ_ONLY,
                null).setResultCallback(
                new ResultCallback<DriveContentsResult>() {
                    @Override
                    public void onResult(DriveContentsResult result) {
                        if (result.getStatus().isSuccess()) {

有什么办法可以让我得到这个文件的文件名吗? (不是驱动器 ID,而是它的实际名称?)

我正在尝试验证所选文件(通过检查名称中的类型),除了获取名称之外,我想不出其他方法来执行此操作。类型是 .cblite,一个 Couchbase Lite 数据库文件。通常我只是按 MIME 类型过滤驱动器选择器,但 .cblite(据我所知)不是这些选项之一。相反,我试图通过文件名进行验证。

有办法吗? (或者有没有办法按 miscellaneous/unidentified 类型过滤 MIME 类型?)

是的,一旦您拥有 DriveId,就可以获得元数据。元数据字段之一是 getTitle() ,它将为您提供文件/文件夹名称。看看这个代码片段:

DriveFile googleDriveFile  = Drive.DriveApi.getFile(googleApiClient, driveId);
MetadataResult mdRslt = googleDriveFile .getMetadata(googleApiClient).await();
if (mdRslt != null && mdRslt.getStatus().isSuccess()) {
  mdRslt.getMetadata().getTitle();
}

这里的'await' flavor是为了方便,必须是运行 off-ui线程。或者只是把它变成回调样式。

祝你好运