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

标签 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 类型?)

最佳答案

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

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

这里使用'await' flavor 是为了方便,它必须在ui 线程之外运行。或者只是将其变成回调样式。

祝你好运

关于android - 有没有办法使用 Google Drive API 获取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503418/

相关文章:

javascript - 上传前如何使用 JavaScript 检查文件 MIME 类型?

java - 使用 Java 和 Google Drive API V3 将文件上传到共享的 Google 云端硬盘位置?

java - 使用 runOnUiThread 时,异步任务将 List 重置为 null

Android Studio Gradle 构建风格

Android:以编程方式设置样式时不显示 EditText

Android:如果我想从下载文件夹中查看/选择 SQLite 数据库,要使用什么 mime 类型?

node.js - 无法使用 NodeJS 和 mime 包获取文件扩展名

java - 安装时提示用户输入 - Android

android - 使用 Drive sdk 从 Drive 文件夹访问完整的文件列表

android - 当请求 Google 驱动器范围权限时,会出现无限加载对话框