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

时间:2015-02-13 15:50:54

标签: 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()) {

我有什么方法可以获取此文件的文件名吗? (不是驱动器ID,而是实际名称?)

我试图验证所选文件(通过检查其名称中的类型),除了获取名称之外,我无法想到一种方法。类型是.cblite,Couchbase Lite数据库文件。通常我只是按MIME类型过滤云端硬盘选择器,但.cblite(据我所知)并不是其中一个选项。相反,我试图通过文件名验证。

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

1 个答案:

答案 0 :(得分: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();
}

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

祝你好运