我正在处理必须enrypt和zip文件的应用程序。因此,我在内存中创建了一些数据(文本,二进制或其他),加密并保存到磁盘(file1和file2)。我打电话给“zip out.zip file1 file2”。
我不想将这些文件保存到磁盘,但是立即创建zip并从内存中打包这些文件。
我该怎么做?
非常感谢!
答案 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
;也许这可以让你开始。