如何在谷歌应用脚本中解压 .ZIP mime 类型(应用程序/x-zip-compressed)
Posted
技术标签:
【中文标题】如何在谷歌应用脚本中解压 .ZIP mime 类型(应用程序/x-zip-compressed)【英文标题】:How to unzip .ZIP mime type (application / x-zip-compressed) in google app script 【发布时间】:2021-07-08 12:00:53 【问题描述】:我有以下问题,我正在开发一个过程来解压缩并验证 .zip 中的文件在 google 驱动器文件夹中,问题是这些 .zip 是 Mime (application / x-zip-压缩) 并且方法 ** unzip ** 似乎无法识别这种类型的 Mime,因为 (application / zip) 确实可以正常工作。
附上示例代码:
function unZipIt()
var theFolder = DriveApp.getFolderById('Id de la carpeta')
var fileBlob = theFile.next().getBlob()
fileBlob.setContentType("application/x-zip-compressed")
var unZippedfile = Utilities.unzip(fileBlob)
Logger.log(unZippedfile);
var unZippedfile = Utilities.unzip (fileBlob)
行中抛出的异常如下:
**Exception: Converting from application/x-zip-compressed to application/zip is not supported.**
我的问题是:如何解压缩或迭代这些 Zip 中的文件,类型为 Mime: ** application / x-zip-compressed ** 或者如何转换为 ** application / zip **?
注意:如果写得不好,对不起,我正在使用翻译器。
谢谢
【问题讨论】:
这些 zip 文件是如何创建的?另外,您是否尝试过将setContentType
更改为 zip?
我在 Windows 10 中创建了这些文件并将它们上传到我尝试使用 setContentType
to` application / zip` 的驱动器,但它引发了以下错误:Exception: Unexpected error while getting the method or property unzip on object Utilities
虽然从你的脚本来看,我无法理解theFile
,比如用setContentTypeFromExtension()
代替setContentType("application/x-zip-compressed")
,你会得到什么结果?
【参考方案1】:
您可以按照@Tanaike 的建议使用setContentTypeFromExtension 方法:
var thisFile = DriveApp.getFileById(newestFileId);
var thisBlob = thisFile.getBlob();
var convertedBlob = thisBlob.setContentTypeFromExtension();
var thisUnzip = Utilities.unzip(convertedBlob);
【讨论】:
以上是关于如何在谷歌应用脚本中解压 .ZIP mime 类型(应用程序/x-zip-compressed)的主要内容,如果未能解决你的问题,请参考以下文章