- 浏览: 195784 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (231)
- C++学习 (41)
- vc学习 (25)
- vc异常 (4)
- Flex (2)
- Ext (0)
- java学习笔记 (15)
- mysql学习笔记 (1)
- ibatis学习笔记 (7)
- struts1学习笔记 (1)
- hibernate学习笔记 (3)
- javascript学习笔记 (8)
- eclipse快捷键 (2)
- 英语学习 (1)
- cmd (1)
- eclipse 配置 (2)
- 其他 (4)
- JAVASE (34)
- firefox (1)
- linux (8)
- Apache (6)
- cms (22)
- jsuc (10)
- html (3)
- css (1)
- 作图 (2)
- vs2012 (2)
- 编码转换 (12)
- work_unicode (1)
- work_webbrowser (1)
- work_trade_quotes_login (1)
- c#学习 (38)
- wpf学习 (31)
- wpf快速学习 (1)
- VB学习 (1)
- NSIS (4)
- log4cpp (3)
- 学习web (1)
- 经验 (1)
- c_汇编 (1)
最新评论
#include <atlconv.h> //for W2CA #include "zlib/contrib/minizip/zip.h" //最终接口:从某个目录创建zip文件 void CreateZipFromDir(const CString& dirName, const CString& zipFileName); //将文件添加到zip文件中,注意如果源文件srcFile为空则添加空目录 //fileNameInZip: 在zip文件中的文件名,包含相对路径 void AddFileToZip(zipFile zf, const char* fileNameInZip, const char* srcFile) { FILE* srcfp = NULL; //初始化写入zip的文件信息 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; //如果srcFile为空,加入空目录 char new_file_name[MAX_PATH]; memset(new_file_name, 0, sizeof(new_file_name)); strcat(new_file_name, fileNameInZip); if (srcFile == NULL) { strcat(new_file_name, "/"); } //在zip文件中创建新文件 zipOpenNewFileInZip(zf, new_file_name, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION); if (srcFile != NULL) { //打开源文件 srcfp = fopen(srcFile, "rb"); if (srcfp == NULL) { MessageBox(_T("无法添加文件") + CString(srcFile) + _T("!")); zipCloseFileInZip(zf); //关闭zip文件 return; } //读入源文件并写入zip文件 char buf[100*1024]; //buffer int numBytes = 0; while( !feof(srcfp) ) { numBytes = fread(buf, 1, sizeof(buf), srcfp); zipWriteInFileInZip(zf, buf, numBytes); if( ferror(srcfp) ) break; } //关闭源文件 fclose(srcfp); } //关闭zip文件 zipCloseFileInZip(zf); } //递归添加子目录到zip文件 void CollectFilesInDirToZip(zipFile zf, const CString& strPath, const CString& parentDir) { USES_CONVERSION; //for W2CA CString strRelativePath; CFileFind finder; BOOL bWorking = finder.FindFile(strPath + _T("//*.*")); while(bWorking) { bWorking = finder.FindNextFile(); if(finder.IsDots()) continue; if (parentDir == _T("")) strRelativePath = finder.GetFileName(); else strRelativePath = parentDir + _T("//") + finder.GetFileName(); //生成在zip文件中的相对路径 if(finder.IsDirectory()) { AddFileToZip(zf, W2CA(strRelativePath), NULL); //在zip文件中生成目录结构 CollectFilesInDirToZip(zf, finder.GetFilePath(), strRelativePath); //递归收集子目录文件 continue; } AddFileToZip(zf, W2CA(strRelativePath), W2CA(finder.GetFilePath())); //将文件添加到zip文件中 } } //最终接口:从某个目录创建zip文件 void CreateZipFromDir(const CString& dirName, const CString& zipFileName) { USES_CONVERSION; //使用W2CA转换unicode字符集 zipFile newZipFile = zipOpen(W2CA(zipFileName), APPEND_STATUS_CREATE); //创建zip文件 if (newZipFile == NULL) { MessageBox(_T("无法创建zip文件!")); return; } CollectFilesInDirToZip(newZipFile, dirName, _T("")); zipClose(newZipFile, NULL); //关闭zip文件 }
发表评论
-
manifest
2015-06-08 17:57 1810我遇到的问题: 将 Upload.exe Upload.exe ... -
log4CPP多线程支持的缺角(一)(转)
2015-06-01 10:59 968log4CPP多线程支持的缺角 ... -
文件大小(转)
2015-06-01 10:08 465方法一: WIN32_FIND_DATA fi ... -
log4cpp环境变量
2015-05-13 15:32 646log4cplus.appender.DEBUG_MSG.Fi ... -
linux设置环境变量putenv() setenv() getenv()(转)
2015-05-13 15:28 1145linux设置环境变量putenv() setenv() ge ... -
VC学习:log4cpp
2015-05-12 15:37 764基于LGPL开源项目 Log4cpp ... -
VC异常:File:write.c Line:67
2015-05-12 15:29 713VC异常:File:write.c Line:67 路径没找 ... -
C++异常:rethrow【转】
2015-05-08 15:20 391C++异常rethrow【转】 http://se.csai. ... -
VC异常:Free Heap block xxxxxxxx modified at xxxxxxxx after it was freed(转)
2015-05-08 15:18 1056Free Heap block xxxxxxxx modifi ... -
VC异常:Free Heap block XXXXXX modified at XXXXXX after it was freed(转)
2015-05-07 15:41 2948Free Heap block XXXXXX modified ... -
VC中关于 0xcccccccc、0xcdcdcdcd和 0xfeeefeee 异常值说明
2015-05-07 15:14 1078VC中关于 0xcccccccc、0xcdcdcdcd和 0x ... -
析构函数后,还可以调用函数成员
2015-05-07 15:13 849析构函数后,还可以调用函数成员 类的所有的函数成员的是编译时期 ... -
[size=medium] c,c#判断socket是否断开[/size]
2015-03-17 13:28 1072c,c#判断socke ... -
时间转换
2015-01-08 11:55 456时间转换 public static long DateT ... -
C++ localtime函数需要注意的地方
2015-01-08 11:42 982time_t tLast = pLastFQKLineIt ... -
TerminateThread
2014-11-13 14:04 652TerminateThread. 如线程内部不涉及空间开辟, ... -
VC退出线程的方法(转载)
2014-10-23 17:39 671VC退出线程的方法 标题很简单,但是要讨论的地方不少; ... -
创建文件夹CreateDirectoryA(file, 0);
2014-10-23 17:19 1469创建文件夹CreateDirectoryA(file, 0) ... -
heap corruption detected错误解决方法调试方法以及内存管理相关(转载)
2014-10-23 16:57 1071heap corruption detected错误解决方法调 ... -
edit control字体背景颜色
2014-10-23 16:56 683edit control字体背景颜色 属性必须 readon ...
相关推荐
使用ZLib和minizip实现对文件夹(包括子文件夹)的压缩解压缩工具,vc6.0版
zlib不支持多级文件夹的压缩,这个是我自己定义的标准进行多级文件夹的压缩,适合用与小文件夹的打包-传输-解包。
minizip一种支持文件的压缩解压工具,支持qt中直接编译生成库文件。
使用minizip解压缩多个文件(基于zlib),这是库中用到的头文件
紧接着《C++ zlib库源码编译及简单使用(VS2019)》后,我们使用minizip+zlib,对多级文件夹进行加密压缩成zip文件,然后对zip文件进行解压缩。 支持WinRAR、360zip等第三方工具解密解压。
使用minizip 开源代码, 修改成可以显示解压整个进度已经每个文件的解压进度.
在linux环境下通过zlib库压缩文件夹/目录成.zip文件的c++程序。测试ok、不乱码,如果想自己操作一边,请看我写的readme文档(包含说明和操作步骤),可以快速实现压缩。
使用第三个组件 XUnzip 使用方法请见selfupdate.cpp
本例通过点击button,将Iamzip.zip压缩包中的share.png图片解压,并显示在View中 使用minizip库时只需导入ZipArchive库和libz.1.2.3.dylib(或者libz.dylib),并包含头文件#import "ZipArchive.h
拉链:minizip压缩库周围的C ++包装器
"Usage : minizip [-o] [-a] [-0 to -9] [-p password] [-j] file.zip [files_to_add]\n\n" \ " -o Overwrite existing file.zip\n" \ " -a Append to existing file.zip\n" \ " -0 Store only\n" \ " -1 Compress ...
Minizip安装与配置[收集].pdf
hcjcwkbvvuhbvuhdbv vguvurevrev er ver vre vuervb
用libxml2和minizip读Microsoft Excel 2007(xlsx)文件的示例
基于zlib封装的压缩解压缩lib库,下载包中含lib库源码及demo源码。支持文件、文件夹解压与压缩。编译环境VS2013。
minizip库源码,包含了所依赖的zip库的文件,可以直接添加到工程
内含minizip、miniunzip ,快速简单创建压缩文件,100KB搞定python 自动化压缩、解压缩文件。使用请参考https://blog.csdn.net/zerothy/article/details/102908010
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
一、内容概况 QGIS是一个开源的、跨平台的地理信息系统(GIS)软件,用于浏览、编辑和分析地理空间数据,提供了一套丰富的功能,...当前采用的版本为MiniZip-1.1,如果下载者,需要其他版本的MiniZip,请在评论区留言。