【发布时间】:2012-03-04 08:43:17
【问题描述】:
我正在尝试将文件添加到 zip而不创建新的 zip。
我已经尝试过使用多个库,但如果不重新创建一个全新的 zip 文件,它们都无法做到这一点。我正在使用的库是DotNetZip
我为什么要这样做是因为我正在处理非常大的 zip 文件,我只想修改 zip 中的现有文件。
【问题讨论】:
-
检查stackoverflow.com/questions/1356003/…,它解释了它是如何使用 DotNetZip 完成的。
-
zip 文件(存档)只是不太适合这个...不要被只需要几个方法调用的解决方案所欺骗,它可能仍在复制整个文件。
-
@olaf 没有这样做 :( 就像我说的,我希望它不要创建一个全新的文件
-
这里的部分问题是 zip 文件使用的压缩算法需要将数据视为流。对于不同的输入流,必须在多个位置修改输出流,因此即使您可以就地修改输出,也需要复制大量的输出流以腾出空间用于文件中其他地方的更改。创建一个新文件要简单得多,而且几乎不会花费更多时间。
-
我认为,如果您使用 WinZip 修改一个大文件并监视这些文件,您会看到一个
.tmp文件正在复制到...