gpt4 book ai didi

android - Google Drive Android API - 检查文件夹是否存在

转载 作者:IT老高 更新时间:2023-10-28 23:35:22 26 4
gpt4 key购买 nike

我试图弄清楚如何使用新的 Google Drive Android API 检查 Google 云端硬盘中是否存在文件夹

我尝试了以下方法,认为如果找不到文件夹,它会崩溃或返回 null,但它不会那样做(只要它是有效的 DriveId ,即使文件夹已被删除)。

DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), driveId));

如果我尝试在从上述代码中获得的文件夹中创建一个文件,它也不会崩溃吗?显然,我很难理解这个新 API 是如何一起工作的,尤其是在非常有限的教程和 SO 问题的情况下,我真的坚持这个,所以任何输入都将不胜感激。

只是为了澄清我的问题:我正在指定的 Google Drive 文件夹中创建一个文件,但如果该文件夹不存在(已被用户删除),我想先创建它。

最佳答案

经过大量研究,这是我最终得到的代码。它工作正常,但有一个问题:当一个文件夹在 Google Drive 中被丢弃时,我可以从我的应用程序中获取的元数据需要一些时间(小时)才能更新,这意味着此代码可以首先检测文件夹是否已被丢弃几个小时后,垃圾事件实际发生了 - 可以找到更多信息和讨论here .

public class checkFolderActivity extends BaseDemoActivity {

@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);

DriveId folderId = DriveId.decodeFromString(folderId);
DriveFolder folder = Drive.DriveApi.getFolder(mGoogleApiClient, folderId);
folder.getMetadata(mGoogleApiClient).setResultCallback(metadataRetrievedCallback);

}

final private ResultCallback<DriveResource.MetadataResult> metadataRetrievedCallback = new
ResultCallback<DriveResource.MetadataResult>() {
@Override
public void onResult(DriveResource.MetadataResult result) {
if (!result.getStatus().isSuccess()) {
Log.v(TAG, "Problem while trying to fetch metadata.");
return;
}

Metadata metadata = result.getMetadata();
if(metadata.isTrashed()){
Log.v(TAG, "Folder is trashed");
}else{
Log.v(TAG, "Folder is not trashed");
}

}
};
}

关于android - Google Drive Android API - 检查文件夹是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com