8

是否有一个库用于为非常大的文件(4 Gb 及以上)即时创建 zip 文件( zip 文件格式不是 gzip 或任何其他压缩格式)(因此我可以在压缩时开始发送文件)。

压缩比无关紧要(主要是媒体文件)。

该库必须有一个 c 接口并且可以在 Debian 和 OSX 上运行。

4

3 回答 3

4

libarchive 支持您想要的任何格式,即时甚至内存中的文件。

于 2011-08-31T11:08:23.693 回答
3

zlib 支持按块压缩。您应该能够在压缩后立即开始发送一个小块,而库仍在压缩下一个块。(见这个例子

(不幸的是,文件表存储在 zip 文件的末尾,因此文件在接收方完成之前将无法使用)

于 2011-08-30T10:54:48.983 回答
2

虽然这个问题很老并且已经回答了,但我会为那些发现这个问题的人指出一个新的潜在解决方案。

我需要一些非常相似的东西,一个可移植且非常小的库,它以 C 的流媒体方式创建 ZIP 档案。没有找到任何符合要求的东西,我创建了一个使用 zlib 的库,可在此处获得:

https://github.com/CTrabant/fdzipstream

该代码仅依赖于 zlib,本质上提供了一个简单的界面来创建 ZIP 档案。最重要的是(对我来说)输出可以流式传输到管道、套接字,因为输出流不需要是可搜索的。代码很小,一个源文件和一个头文件。适用于 OSX 和 Linux 以及可能的其他地方。希望它对我以外的人有所帮助...

于 2014-09-18T18:27:49.627 回答