在Linux中从内存中压缩文件

我正在处理必须encryption和压缩文件的应用程序。 所以,我在内存中创build了一些数据(文本,二进制或其他),将其encryption并保存到磁盘(file1和file2)。 我称之为“zip out.zip file1 file2”。

我不想将这些文件保存到磁盘,但立即创buildzip文件并从内存中打包这些文件。

我该怎么做?

非常感谢!

您可以尝试使用zlib库来从内存缓冲区创建zip文件。

提升:iostreams也可能是一个很好的解决方案。

对于zlib ,contribs中有一个名为minizip的zip扩展。 对于minizip,您可以在作者页面上找到可用于内存缓冲区的代码:

Justin Fletcher为ioapi代码( ioapi_mem_c.zip )写了一个非常简单的内存访问方法实现。

请注意,您必须先进行压缩,然后进行加密。 加密的数据不能被压缩了。

有趣的是,我无法找到一个库来创建C中的ZIP文件.zlib只允许(去)压缩ZIP文件中的单个条目。

它带有contrib/minizip ; 也许这可以让你开始。