温馨提示×

c++ minizip压缩文件如何操作

c++
小樊
93
2024-08-13 00:03:42
栏目: 编程语言

在C++中,可以使用minizip库来压缩文件。下面是一个简单的示例代码,演示如何使用minizip库来完成文件的压缩操作:

#include <iostream>
#include "zip.h"

int main() {
    const char *zipfilename = "test.zip";
    const char *filename = "test.txt";

    // create a new zip file
    zipFile zf = zipOpen(zipfilename, APPEND_STATUS_CREATE);
    if (zf == NULL) {
        std::cerr << "Error opening zip file" << std::endl;
        return 1;
    }

    // add a file to the zip file
    zip_fileinfo zi = {0};
    zipOpenNewFileInZip(zf, filename, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION);
    FILE *file = fopen(filename, "rb");
    if (file == NULL) {
        std::cerr << "Error opening file" << std::endl;
        return 1;
    }
    char buf[1024];
    int len;
    while ((len = fread(buf, 1, sizeof(buf), file)) > 0) {
        zipWriteInFileInZip(zf, buf, len);
    }
    zipCloseFileInZip(zf);

    // close the zip file
    if (zipClose(zf, NULL) != ZIP_OK) {
        std::cerr << "Error closing zip file" << std::endl;
        return 1;
    }

    return 0;
}

在这个示例中,我们首先创建了一个新的zip文件,并打开了一个新文件以进行写入。然后,我们将文件内容逐块读取并写入到zip文件中。最后,我们关闭了zip文件。

请注意,上面的示例仅仅是一个基本示例,实际应用中可能需要更多的错误处理和参数设置。你可以根据自己的需求进行修改和扩展。

0