【发布时间】:2011-08-30 10:49:08
【问题描述】:
是否有一个库可以为非常大的文件(4 Gb 和以上)。
压缩比并不重要(主要是媒体文件)。
该库必须有一个 c 接口并且可以在 Debian 和 OSX 上运行。
【问题讨论】:
-
@karlphillip 很抱歉。需要 Debian 和 OSX 支持。
标签: c streaming compression zip on-the-fly
是否有一个库可以为非常大的文件(4 Gb 和以上)。
压缩比并不重要(主要是媒体文件)。
该库必须有一个 c 接口并且可以在 Debian 和 OSX 上运行。
【问题讨论】:
标签: c streaming compression zip on-the-fly
libarchive 支持您想要的任何格式,动态甚至内存中的文件。
【讨论】:
zlib 支持分块压缩。您应该能够在压缩后立即开始发送一个小块,而库仍在压缩下一个块。 (见this example)
(不幸的是,文件表存储在 zip 文件的末尾,因此文件在接收方完成之前将无法使用)
【讨论】:
contrib/minizip,它确实使用 zlib 创建 zip 文件,所以它显然可以。
虽然这个问题很老并且已经回答了,但我会为那些发现这个问题的人指出一个新的潜在解决方案。
我需要一个非常相似的东西,一个可移植且非常小的库,它可以用 C 以流式方式创建 ZIP 档案。找不到任何符合要求的东西,我创建了一个使用 zlib 的库,可在此处获得:
https://github.com/CTrabant/fdzipstream
该代码仅依赖于 zlib,本质上提供了一个简单的界面来创建 ZIP 存档。最重要的是(对我来说)输出可以流式传输到管道、套接字,因为输出流不需要是可搜索的。代码很小,一个源文件和一个头文件。适用于 OSX 和 Linux 以及可能的其他地方。希望它对我以外的人有所帮助...
【讨论】: