当前位置: 首页 > news >正文

c++解压压缩包文件

功能实现需要依赖相关头文件和库文件,我这里的是64位的。需要的可以在这下载:https://download.csdn.net/download/bangtanhui/88403596


参考代码如下:

#include <zip.h>
#pragma comment(lib,"libzip.lib")//解压压缩包
//传参:压缩包路径、目标文件夹路径
void DriverList::unZip(const char* zipName, const char* dirName) {int iErr = 0;struct zip* zipfile = NULL;struct zip_file* entries = NULL;struct zip_stat stat;zip_int64_t i64Num = 0;zip_int64_t i64Count = 0;int iRead = 0;int iLen = 0;char buf[1024];memset(&stat, 0, sizeof(stat));memset(buf, 0, sizeof(buf));zipfile = zip_open(zipName, ZIP_CHECKCONS, &iErr);if (!zipfile){printf("zip open failed:%d\n", iErr);exit(EXIT_FAILURE);}//get how many entrrites in archivei64Num = zip_get_num_entries(zipfile, 0);for (i64Count = 0; i64Count < i64Num; i64Count++){iLen = 0;if (zip_stat_index(zipfile, i64Count, 0, &stat) == 0){printf("the file name is:%s\n", stat.name);}entries = zip_fopen_index(zipfile, i64Count, 0);if (!entries){printf("fopen index failed\n");goto End;}//create the original filechar filePath[MAX_PATH]{ 0 };strcpy(filePath, dirName);strcat(filePath, "/");strcat(filePath, stat.name);FILE* fp = fopen(filePath, "wb+");if (!fp){printf("create local file failed\n");goto End;}while (iLen < stat.size){iRead = zip_fread(entries, buf, 1024);if (iRead < 0){printf("read file failed\n");fclose(fp);goto End;}fwrite(buf, 1, iRead, fp);iLen += iRead;}fclose(fp);}End:zip_close(zipfile);
}


工程的“包含目录”和“库目录”需要包含相关路径
在这里插入图片描述

程序运行可能还需要依赖当前exe路径下相关dll文件
在这里插入图片描述

http://www.lryc.cn/news/184452.html

相关文章:

  • MySql学习笔记:MySql性能优化
  • 机器学习(四十八):粒子群优化(PSO)-提升机器学习模型准确率的秘密武器
  • MySQL - mysql服务基本操作以及基本SQL语句与函数
  • [图论]哈尔滨工业大学(哈工大 HIT)学习笔记16-22
  • 使用关键字abstract 声明抽象类-PHP8知识详解
  • Java中使用正则表达式
  • Python之字符串分割替换移除
  • ubuntu增加内存
  • 黑客都是土豪吗?真实情况是什么?
  • 企业想过等保,其中2FA双因素认证手段必不可少
  • Combination Lock
  • SpringBoot解决LocalDateTime返回数据为数组问题
  • 【数字人】2、MODA | 基于人脸关键点的语音驱动单张图数字人生成(ICCV2023)
  • 群狼调研(长沙物业第三方评优)开展房地产市场调查内容设计
  • 计算机网络-计算机网络体系结构-物理层
  • 微信小程序wxs标签 在wxml文件中编写JavaScript逻辑
  • C++设计模式-工厂模式(Factory Method)
  • 八大排序算法
  • 机器学习笔记 - 两个静态手势识别的简单示例
  • 2023年,有哪些好用的互联网项目管理软件?
  • python 按照文件大小读取文件
  • 黑客帝国代码雨
  • 基于SpringBoot的植物健康系统
  • Kettle连接数据库[MySQL]报错
  • Postman接口测试学习之常用断言
  • 自动化机器学习AutoML之flaml:利用flaml框架自动寻找最优算法及其对应最佳参数python
  • 支付宝sdk商户私钥 如何生成?
  • Linux之epoll理解
  • 龟速乘 - a * b爆ll且模数很大时的计算方法
  • 计算机网络笔记3 数据链路层