0

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

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

我注意到在网络浏​​览器中,您可以单击 google drive 文件夹并选择,将文件夹另存为 .zip。

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

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

4

1 回答 1

1

我认为您无法使用 Google Drive API 做到这一点。但是,您可以使用 Google Apps Script,但如果您下载的文件太多或太大,我建议您不要使用此方法。

以下是如何使 zip 文件从stackoverflow 中的另一个线程中窃取的示例代码

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

此外,如果您在文件夹中有多个具有相同名称的文件,它将无法工作...... Google Drive 文件夹支持,但 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'));

希望这可以帮助

于 2013-06-03T18:31:33.380 回答