其实我的要求是在一些文件夹中压缩一些文件。我已经在我的服务器上保存了许多文件并与一些对象相关联。所以我必须压缩与一个对象相关的所有文件,有点像这样:
- 主文件夹
- 子文件夹
- 另一个文件夹
- XLSX 文件
- 另一个文件夹
- 子文件夹
这是我的层次结构的一个例子。我所做的是我创建了这些文件夹,复制了这些文件夹中的文件并使用以下代码创建了一个 zip:
在 rubyzip 库本身上找到。但是,当我在 Windows 上解压缩此文件并在 Microsoft Excel 中打开它时,出现以下错误:
我们发现“FileName.xlsx”中的某些内容存在问题。您希望我们尽可能多地恢复吗?如果您信任此工作簿的来源,请单击是
按是恢复文件,但我不知道为什么会出现这个错误。我尝试在工作正常的服务器上复制excel文件时打开它,但是一旦压缩和解压缩,就会出现错误。我已经看到了这个主题的一些不同的问题,比如:
由 rubyzip 压缩的 xlsx 无法被 Excel 读取
但没有任何帮助。
我尝试做的更多是设置压缩级别,我尝试将其设置Zlib::DEFAULT_COMPRESSION
为 rubyzip,但尽管如此,我还是遇到了同样的问题。在某些地方,甚至在自述文件中,如果 rubyzip 我发现我们可以使用:
write_buffer
改为使用open
我在这条线上尝试了它(我能找到的最好的):
但它给了我一个不同的例外,所以如果这是解决方案,我不知道如何使用它。