簡體   English   中英

使用DriveId獲取Google雲端硬盤文件夾名稱和路徑

[英]Get Google Drive Folder Name and Path using DriveId

我正在使用GitHub上提供的google drive api內容來選擇文件夾。 使用下面的代碼,我可以獲取文件夾ID來傳輸數據,但是我無法獲取文件夾名稱或文件夾路徑。 有人可以幫忙嗎? 我嘗試使用asDriveFolder,但未獲取所需信息。

這是獲取所選文件夾的驅動器ID的代碼。

public class GoogleFolderSelector extends GoogleDriveBaseActivity {


    String TAG = "Google Folder Picker";

    private static final int REQUEST_CODE_OPENER = 1;

    @Override
    public void onConnected(Bundle connectionHint) {
        super.onConnected(connectionHint);
        IntentSender intentSender = Drive.DriveApi
                .newOpenFileActivityBuilder()
                .setMimeType(new String[]{DriveFolder.MIME_TYPE})
                .build(getGoogleApiClient());
        try {
            startIntentSenderForResult(
                    intentSender, REQUEST_CODE_OPENER, null, 0, 0, 0);
        } catch (IntentSender.SendIntentException e) {
            Log.w(TAG, "Unable to send intent", e);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            switch (requestCode) {
                case REQUEST_CODE_OPENER:
                    if (resultCode == RESULT_OK) {
                        DriveId driveId = (DriveId) data.getParcelableExtra(
                                OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
                        DriveFolder driveFolder = driveId.asDriveFolder();

                        showMessage("Folder Path"+ driveFolder);

                        showMessage("Selected folder's ID: " + driveId);

                    }
                    finish();
                    break;
                default:
                    super.onActivityResult(requestCode, resultCode, data);
                    break;
            }
        } catch (Exception e) {
            e.printStackTrace();
            Popup.longpopup("Connection Established, Click to select Folder", this);
        }
    }
}

為了獲得文件夾名稱,請如下使用元數據

Task<Metadata> getMetadataTask = getDriveResourceClient().getMetadata(file);
getMetadataTask
        .addOnSuccessListener(this,
                metadata -> {
                    showMessage(getString(
                            R.string.metadata_retrieved, metadata.getTitle()));
                    finish();
                })
        .addOnFailureListener(this, e -> {
            Log.e(TAG, "Unable to retrieve metadata", e);
            showMessage(getString(R.string.read_failed));
            finish();
        });

這是完整的說明

對於文件夾路徑,我曾經嘗試進行檢索,但是似乎沒有必要,因為您可以使用driveId進行操作,例如將文件添加到該driveId文件夾中或在該driveId文件夾中創建另一個文件夾。 探索Google示例應用程序將帶給您更好的視野。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM