有没有办法使用Google Drive API获取文件名?

Chr*_*ina 3 android mime-types google-drive-android-api

假设我使用Google Drive API来选择要打开的文件.我有这样的代码:

// 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()) {
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试验证所选文件(通过检查其名称中的类型),除了获取名称之外,我想不出一种方法可以做到这一点.类型是.cblite,Couchbase Lite数据库文件.通常我只是按MIME类型过滤驱动器选择器,但.cblite(据我所知)不是这些选项之一.相反,我试图通过文件名验证.

有没有办法做到这一点?(或者有没有办法通过杂项/未识别的类型过滤MIME类型?)

sea*_*npj 9

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

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

这里的'await'风味用于方便,它必须在u-thread线程下运行.或者只是将其转换为回调样式.

祝好运