在我的应用中,我正在编写一项活动,以将本地数据库备份到Google云端硬盘。我让用户选择使用Drive的intentPicker将文件保存到的文件夹,并将结果保存在我的OnActivityResult中:

@Override
    protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
        switch (requestCode) {
            // REQUEST_CODE_PICKER
            case 2:
                intentPicker = null;

                if (resultCode == RESULT_OK) {
                    //Get the folder's drive id
                    DriveId mFolderDriveId = data.getParcelableExtra(
                            OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);

                    uploadToDrive(mFolderDriveId);
                }


上载文件后,我想向用户显示文件的保存位置。因此,我需要将文件夹的DriveId转换为人类可读的路径,例如/ drive / MyBackups / May。

我已经尝试过driveId.toString,但它只会返回一个字符串,其中包含无用的数字和字母,例如DriveId:CASDFAD2Jmasdf==...

最佳答案

使用文件夹的Drive API方法时,请注意Drive Rest API-Work with Folders中提供的以下重要键:


文件夹是MIME类型application/vnd.google-apps.folder且没有扩展名的文件。
您可以使用别名root来指代提供文件ID的任何位置的根文件夹


使用这些给定的键,您可以在查询中添加与要查找的文件有关的父ID,然后可以遵循此SO帖子-What's the right way to find files by “full path” in Google Drive API v2中给出的逻辑。

希望它对您有用。

08-05 04:56