在内存中创建文件,然后使用 7-zip 命令行将它们推送到 zip 存档中?
我正在尝试用 C++ 动态创建 zip 文件,我正在使用 7-zip 来尝试完成此任务,特别是我想使用 7-zip 命令行(我愿意尝试并修改其源代码来完成这)。
这可能吗?如果可以,我应该如何去做?
I'm trying to create zip files on the fly in C++, I'm using 7-zip to try and accomplish this, specifically I want to use the 7-zip commandline (I'm willing to try and modify its source to accomplish this).
Is this possible and if so how should I go about doing it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 minizip 和这样的代码应该可以在 Windows 上完成这项工作。
Using minizip with code like this should do the job on windows.
7-zip 可以从
STDIN
进行压缩,因此您可以使用某些命令行参数启动 7z 进程,然后将数据放入其STDIN
中。例如以下示例:将创建
arc.7z
文件,其中包含两个文件:foo.txt
和bar.txt
(包含文本foo分别是
和bar
)。当然,在您的程序中,您不需要调用
echo
,只需使用管道或操作系统提供的其他方式7z
重定向STDIN
即可。如果您需要添加多个文件,则必须多次启动7z
。7-zip can compress from
STDIN
, so you start 7z process with certain command line arguments, then put your data into itsSTDIN
. For example following:will create
arc.7z
file with two files inside:foo.txt
andbar.txt
(containing textfoo
andbar
respectively).Of course from your program you don't need to call
echo
, only7z
redirectingSTDIN
with pipes or some other means your OS provides. And you'll have to start7z
several times if you need to add more than one file.