java - 如何使用 android google Drive 将文件夹下载为 .zip

标签 java android google-drive-api

我的谷歌驱动器中有一个文件夹,其中包含许多文档和图像。我可以通过单独下载每个文件来下载文件夹内容。通过这种方法,我列出了我的 Google 文档中的所有文件,并且只下载了单独的文档或图像文件。

但是这种方法非常昂贵,因为它会消耗大量的 api 请求。

我注意到,在网络浏览器中,您可以单击 Google 云端硬盘文件夹并选择将文件夹另存为 .zip。

那么,有谁知道如何使用 android googledrive api 将单个 googledrive 文件夹下载为 .zip?

感谢您的阅读并感谢任何意见或建议。

最佳答案

我认为您无法使用 Google Drive API 执行此操作。不过,您可以使用 Google Apps 脚本,但如果您下载的文件太多或太大,我建议您不要使用此方法。

下面是如何制作从 another thread in stackoverflow 窃取 zip 文件的示例代码

var folder = DocsList.getFolder('path/to/folder');
folder.createFile(Utilities.zip(folder.getFiles(), 'newFiles.zip'));

此外,如果文件夹中有多个同名文件,该功能将不起作用...Google 云端硬盘文件夹支持这一点,但 Zip 文件不支持。

要使其适用于具有相同名称的多个文件:

var folder = DocsList.getFolder('path/to/folder');
var names = {};
folder.createFile(Utilities.zip(folder.getFiles().map(function(f){
  var n = f.getName();
  while (!names[n]) { n = '_' + n }
  names[n] = true;
  return f.getBlob().setName(n);
}), 'newFiles.zip'));

希望这有帮助

关于java - 如何使用 android google Drive 将文件夹下载为 .zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867845/

相关文章:

java - Javascript 中的排序选择选项 - 基于同一行中的多个值

java - 需要解释 OpenCV Android 行为

java - 如何解决 Android 中已弃用的 View 方法?

java - 从 firebase 存储到谷歌地图标记的图像

Android Drawer Example,如何实现Google Map Fragment

python-3.x - 如何在没有服务帐户或下载凭据的情况下使用 Google Sheets API 读取私有(private) Google Sheets

java - 将所有数组元素初始化为零的任何快捷方式?

java - 使用jquery加密用户密码并使用Clojure解密

javascript - 从 Google Drive API 获取图像

java - google drive api services account view uploaded files to google drive 使用java