在linux中从内存中压缩文件

时间:2011-06-09 07:24:53

标签: c++ linux zip

我正在处理必须enrypt和zip文件的应用程序。因此,我在内存中创建了一些数据(文本,二进制或其他),加密并保存到磁盘(file1和file2)。我打电话给“zip out.zip file1 file2”。

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

我该怎么做?

非常感谢!

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

对于zlib,在contrib中有一个名为minizip的zip扩展名。对于minizip,您可以在authors page上找到使用内存缓冲区的代码:

  

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

答案 2 :(得分:1)

请注意,您必须先压缩然后加密。加密数据不再被压缩。

有趣的是,我无法找到从C创建ZIP文件的库。zlib只允许(解压缩)ZIP存档中的单个条目。

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