我确实搜索了这个主题,但我没有找到任何相关的线索。
有人可以给我一些可以解决问题的提示或演示代码吗?
提前致谢。
--- --- FYI
我想在这里做的是压缩文件并上传到远程PC。 我认为它将采取以下步骤:
a)初始化压缩文件头并发送到远程PC并保存该压缩文件头。
b)打开文件以读取部分文件数据并在本地压缩文件数据。
c)通过管道(例如tcp或udp)将压缩数据发送到远程PC。
d)将数据从压缩的管道保存在远程PC上。
e)如果有多个文件,请返回b)
e)当所有文件都被压缩并传输到远程PC时,然后关闭压缩文件。
这里有两个问题:
a)压缩/解压缩
b)文件格式
谢谢你们!
答案 0 :(得分:5)
zlib
会压缩单个流。如果要压缩多个文件,则需要执行以下两项操作之一:
如果您采用第一个选项,使用现有的tar
格式组合文件,您将生成一个.tar.Z
文件,可以使用标准工具提取,因此这是一个很好的方法走。您可以使用libtar
生成tar
存档。
答案 1 :(得分:3)
我已经在minizip周围构建了一个包装器,添加了我需要的一些功能并使其更好用。是否使用最新的c ++ 11并使用Visual Studio 2013开发(应该是可移植的,但我没有在unix上测试过它)
这里有完整的说明:https://github.com/sebastiandev/zipper
但是尽可能简单:
Zipper zipper("ziptest.zip");
zipper.add("somefile.txt");
zipper.add("myFolder");
zipper.close();
你可以压缩整个文件夹,流,矢量等。另外一个很好的功能就是完全在内存中完成所有工作。