1

我正在开发一个库,将 ODT 文件的特定部分视为迷你报告引擎的 Razor 模板。它解压缩 odt 并修改 content.xml,结果似乎是正确的,但是当我尝试在 LibreOffice 中打开时,重新压缩的文件给了我一个“一般 I/O 错误”。

目前我正在使用 C# 的 ZipFile.CreateFromDirectory() 方法来创建 zip 文件。我是否需要在将文件压缩在一起方面做一些特别的事情,或者我的错误更有可能在其他地方?

显然,我首先想到检查 mimetype 文件。我已经确认将文件组视为单个 zip 存档而不压缩它们 (compressionlevel.none) 不起作用,并给出相同的错误。我猜这可能是因为 mimetype 文件必须是存档中的第一个文件。这真的是问题吗?我能做的更好吗?

4

1 回答 1

0

我最终使用了两个不同的 zip 库。DotNetZip 的 ZipOutputStream 允许我指定首先是未压缩的 mimefile。然后我使用它的 ZipFile 类来添加必要的文件夹及其内容。我在使用 DotNetZip 的 Extract() 方法时遇到了问题,因此我实际上使用 .net 的压缩库来解压缩文件,并使用 DotNetZip 将其压缩备份。

我仍在寻找一种更好的方法来做到这一点,但它现在有效。

于 2014-06-10T15:13:26.480 回答