亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

c++ minizip如何實現壓縮和解壓功能

c++
小樊
81
2024-08-13 00:05:49
欄目: 編程語言

要實現壓縮和解壓功能,可以使用minizip庫提供的函數來完成。以下是一個簡單的示例代碼,展示了如何使用minizip庫來進行壓縮和解壓:

#include <stdio.h>
#include "zip.h"
#include "unzip.h"

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

    // 壓縮文件
    zipFile zf = zipOpen(zipfilename, 0);
    if (zf == NULL) {
        fprintf(stderr, "Error opening %s\n", zipfilename);
        return -1;
    }

    FILE* fin = fopen(filename, "rb");
    if (fin == NULL) {
        fprintf(stderr, "Error opening %s\n", filename);
        return -1;
    }

    zip_fileinfo zi;
    memset(&zi, 0, sizeof(zip_fileinfo));
    zipOpenNewFileInZip(zf, "example.txt", &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION);
    
    char buf[1024];
    int size;
    while ((size = fread(buf, 1, sizeof(buf), fin)) > 0) {
        zipWriteInFileInZip(zf, buf, size);
    }

    fclose(fin);
    zipCloseFileInZip(zf);
    zipClose(zf, NULL);

    // 解壓文件
    unzFile uf = unzOpen(zipfilename);
    if (uf == NULL) {
        fprintf(stderr, "Error opening %s\n", zipfilename);
        return -1;
    }

    unz_file_info file_info;
    if (unzLocateFile(uf, "example.txt", 0) != UNZ_OK) {
        fprintf(stderr, "File not found in zip\n");
        return -1;
    }

    if (unzOpenCurrentFile(uf) != UNZ_OK) {
        fprintf(stderr, "Error opening current file\n");
        return -1;
    }

    FILE* fout = fopen("example_unzipped.txt", "wb");
    if (fout == NULL) {
        fprintf(stderr, "Error opening output file\n");
        return -1;
    }

    while ((size = unzReadCurrentFile(uf, buf, sizeof(buf))) > 0) {
        fwrite(buf, 1, size, fout);
    }

    fclose(fout);
    unzCloseCurrentFile(uf);
    unzClose(uf);

    return 0;
}

在這個示例中,我們首先打開一個zip文件,然后將一個文本文件壓縮到zip文件中。接著,我們再打開這個zip文件,解壓出文本文件并保存到磁盤上。這樣就完成了一個簡單的壓縮和解壓的功能。

0
颍上县| SHOW| 娄底市| 安宁市| 西乌珠穆沁旗| 那曲县| 锦屏县| 桂阳县| 永善县| 南平市| 阿克陶县| 重庆市| 鲁山县| 阿拉善右旗| 汽车| 贺州市| 和硕县| 福安市| 宁乡县| 应用必备| 都昌县| 城口县| 中方县| 凤庆县| 和静县| 民乐县| 扶风县| 西畴县| 化州市| 清新县| 田阳县| 明溪县| 乌审旗| 浦城县| 论坛| 福贡县| 理塘县| 平昌县| 灌云县| 昭苏县| 孟州市|