我们假设我使用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类型?)
答案 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线程下运行。或者只是将其转换为回调样式。
祝你好运