当前位置: 首页 > 面试题库 >

如何使用Google Drive Android API删除Google Drive上的文件

澹台文博
2023-03-14
问题内容

我是Google Drive Android API的新手,正在学习中。但是我遇到一个问题,就是我无法使用Google Drive Android
API删除文件,没有一个示例。anybood可以帮助我解决这个问题吗?非常感谢。


问题答案:

更新(2015年4月),
GDAA终于有了自己的“ 垃圾桶
”功能,使答案在IRRELEVANT下面。

原始答案:
如上文Cheryl所述,您可以将这两个API结合使用。

以下是从此处获取的代码段,展示了如何完成此操作:

首先,访问 GoogleApiClient … services.drive.Drive

GoogleApiClient _gac;
com.google.api.services.drive.Drive _drvSvc;

public void init(MainActivity ctx, String email){
  // build GDAA  GoogleApiClient
  _gac = new GoogleApiClient.Builder(ctx).addApi(com.google.android.gms.drive.Drive.API)
        .addScope(com.google.android.gms.drive.Drive.SCOPE_FILE).setAccountName(email)
        .addConnectionCallbacks(ctx).addOnConnectionFailedListener(ctx).build();

  // build RESTFul (DriveSDKv2) service to fall back to for DELETE
  com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential crd =
  GoogleAccountCredential
    .usingOAuth2(ctx, Arrays.asList(com.google.api.services.drive.DriveScopes.DRIVE_FILE));
  crd.setSelectedAccountName(email);
  _drvSvc = new com.google.api.services.drive.Drive.Builder(
          AndroidHttp.newCompatibleTransport(), new GsonFactory(), crd).build();
}

其次,在GDAA的DriveId上实现RESTful API调用:

public void trash(DriveId dId) {
  try {
    String fileID =  dId.getResourceId();
      if (fileID != null)
        _drvSvc.files().trash(fileID).execute();
  } catch (Exception e) {} 
}

public void delete(DriveId dId) {
  try {
    String fileID = dId.getResourceId();
      if (fileID != null)
        _drvSvc.files().delete(fileID).execute();
  } catch (Exception e) {} 
}

…然后瞧,您正在删除文件。和往常一样,并非没有问题。

首先,如果您尝试在创建文件后立即将其删除,则 getResourceId() 会落在文件的表面,并返回 null
。与这里的问题无关,我要对此提出一个建议。

其次, 这是一个骗局! 而且它不应保留在GDAA实现的TRASH和DELETE功能之后的代码中。



 类似资料:
  • 问题内容: 我完全没有使用Windows API的经验,所以请原谅我的无知。 我想删除文件到回收站。如何使用JNA做到这一点,以及如何检测是否不可能(例如,由于文件位于网络共享上)? 问题答案: 使用已定义和方法的。

  • 我试图创建一个nodejs应用程序,可以准备我的GoogleDrive文件。我不想要一个每个人都可以使用的应用程序,它只是特定于我的谷歌驱动。 我在控制台中为GoogleDrive创建了一个api密钥,没有任何限制。 这是我正在做的电话:https://www.googleapis.com/drive/v3/files?pageSize=10 当使用这个键我得到这个错误: 这在谷歌硬盘上可能吗?

  • 问题内容: 当我删除Firebase数据库中的帖子时,我希望云功能可以相应地删除Firebase存储中帖子的缩略图。我的问题是,当我尝试删除缩略图时,我认为找不到正确的图像文件。 这是我尝试过的: 这就是我在日志中得到的 ApiError:找不到Object.parseHttpRespBody(/user_code/node_modules/@google- cloud/storage/node_

  • 本文向大家介绍如何使用python删除一个文件?相关面试题,主要包含被问及如何使用python删除一个文件?时的应答技巧和注意事项,需要的朋友参考一下  

  • 本文向大家介绍如何使用Python删除交换文件?,包括了如何使用Python删除交换文件?的使用技巧和注意事项,需要的朋友参考一下 交换文件的扩展名为.swp。递归地从文件夹中删除所有交换文件的最简单方法是使用带有扩展名(.swp)的字符串函数ends匹配文件名并删除这些文件。  示例 该程序将递归搜索目录“ my_folder”,并删除所有以.swp结尾的文件。

  • 问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能是)唯一的ID查找而不是来查找文档的。