zlib压缩和解压的使用_unzopen-CSDN博客

1.打开444.zip文件,关闭文件。 

    unzFile zipfile = unzOpen("444.zip");
    if (zipfile == NULL) {
        printf("Could not open zip\n");
        return -1;
    }
    //解压缩文件
    int code=unzClose(zipfile);

 2.看看zip文件中的文件和文件夹总数是多少。

    unz_global_info pglobal_info;
    unzGetGlobalInfo(zipfile, &pglobal_info);
    printf("文件和文件夹总数:%d\n", pglobal_info.number_entry);

3.获取zip文件中所有文件文件夹的名称。

    char filename[4096];
    do {
        if (unzGetCurrentFileInfo(zipfile, nullptr, filename, 4096, NULL, 0, NULL, 0) != UNZ_OK) {
            return false;
        }
        printf("filename:%s\n", filename);
    } while (unzGoToNextFile(zipfile) == UNZ_OK);

4.zlib解压缩zip_zlib zip-CSDN博客

 判断要解压缩的是文件还是文件夹(通过external_fa)。

    char buffer[4096];
    unz_file_info info;
    FILE* fp;

    if (unzOpenCurrentFile(zipfile) != UNZ_OK) {
        return false;
    }//打开该定位到的文件

    //通过函数来获取其信息
    unzGetCurrentFileInfo(zipfile, &info, NULL, 0, NULL, 0, NULL, 0);
    
    fp = fopen(filename, "wb");
    if (fp == NULL) {
        printf("fp==NULL\n");
        //文件打开失败
        if (info.external_fa == 16) {
            //说明这是个目录文件
        }
        unzCloseCurrentFile(zipfile);
        return false;
    }

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐