Jak*_*kob 16 android google-drive-api google-drive-android-api
我正在尝试使用新的Google云端硬盘Android API来确定如何检查Google云端硬盘中是否存在文件夹
我已经尝试了以下内容,认为如果找不到文件夹它会崩溃或返回null,但它不会这样做(只要它是有效的DriveId,即使文件夹已被删除).
DriveFolder folder = Drive.DriveApi.getFolder(getGoogleApiClient(), driveId));
Run Code Online (Sandbox Code Playgroud)
如果我尝试创建一个文件,我从上面的代码中得到的文件夹,它也不会崩溃?我显然很难理解这个新API是如何一起工作的,尤其是那些非常有限的教程和SO问题,我真的坚持这个,所以任何输入都将非常感激.
只是为了澄清我的问题:我在指定的Google云端硬盘文件夹中创建了一个文件,但如果该文件夹不存在(已被用户删除),我想先创建它.
经过大量的研究,这是我最终得到的代码.它运行正常,但有一个问题:当一个文件夹在Google云端硬盘中被删除时,我需要花一些时间(几小时)才能更新我可以从我的应用程序中获取的元数据,这意味着此代码可以首先检测该文件夹是否已被删除几个小时之后,实际发生了垃圾事件 - 可在此处找到更多信息和讨论.
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");
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9809 次 |
| 最近记录: |