gpt4 book ai didi

c++ - 在内存中创建文件,然后使用 7-zip 命令行将它们推送到 zip 存档中?

转载 作者:太空狗 更新时间:2023-10-29 20:46:09 25 4
gpt4 key购买 nike

我正在尝试用 C++ 即时创建 zip 文件,我正在使用 7-zip 来尝试完成此操作,特别是我想使用 7-zip 命令行(我愿意尝试修改它的来源来完成这个)。

这可能吗?如果可以,我应该怎么做?

最佳答案

使用 minizip使用这样的代码应该可以在 Windows 上完成工作。

#define USEWIN32IOAPI
#include <zip.h>
#include <unzip.h>
#include <iowin32.h>

int toZip(const wchar_t* zipfile, const char* nameInZip, void* buf, size_t buf_size)
{
zlib_filefunc64_def ffunc;
fill_win32_filefunc64W(&ffunc);
zipFile zf = zipOpen2_64(zipfile, APPEND_STATUS_CREATE, NULL,&ffunc);
if(0 == zf) {
return -1;
}

zip_fileinfo zi;
zi.tmz_date.tm_sec = zi.tmz_date.tm_min = zi.tmz_date.tm_hour =
zi.tmz_date.tm_mday = zi.tmz_date.tm_mon = zi.tmz_date.tm_year = 0;
zi.dosDate = 0;
zi.internal_fa = 0;
zi.external_fa = 0;
zi.dosDate = 0; // no date
int zip64 = 1; // always zip64
unsigned long crcFile=0;

int opt_compress_level(Z_DEFAULT_COMPRESSION);
char* password = 0;
int err = zipOpenNewFileInZip3_64(zf,nameInZip,&zi,
NULL,0,NULL,0,NULL,
(opt_compress_level != 0) ? Z_DEFLATED : 0,
opt_compress_level,0,
-MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
password,crcFile, zip64);

if (ZIP_OK == err) {

err |= zipWriteInFileInZip (zf,buf,buf_size);
err |= zipCloseFileInZip(zf);
}

err |= zipClose(zf,NULL)

return err;
}

关于c++ - 在内存中创建文件,然后使用 7-zip 命令行将它们推送到 zip 存档中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8831167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com