原文链接

https://www.codeproject.com/Articles/7530/Zip-Utils-clean-elegant-simple-C-Win

https://www.codeproject.com/Articles/4135/XZip-and-XUnzip-Add-zip-and-or-unzip-to-your-app-w

完全开源随便玩耍的一个老库库,

本文涉及IDE  VS2013  vc++6.0

无需调用静态库或者动态库,直接包含即可使用 MFC 非MFC工程都可以没有限制,为了方便自身使用涉及这宝宝

自己写个导出库使用,顺便作此文。

--------------------------------------------------------------------------------------------------------------------------------------------------

VS2013/VC++6.0(后面同称IDE)

取消预编译处理

VC- 工程- C/C++ -预编译处理-不使用预补偿页眉

VS-工程-C/C++-找到不使用预编译处理即可

还有一点比较重要的这三者的顺序,如果不注意就报错了

#include <winnt.h>
#include "XUnzip.h"
#include "XZip.h"

好了配置好IDE然后就可以随便玩耍了,

这个库里面有

HZIP CreateZip(void *z, unsigned int len, DWORD flags);//创建一个空的zip

Z:某路径下压缩文件名,无路径默认当前工作目录

len:压缩内存的大小,其他情况为0

flags:压缩文件使用标志 ZIP_FILENAME

成功返回非0

ZipAdd(HZIP hz, const TCHAR *dstzn, void *src, unsigned int len, DWORD flags);//将一个文件添加进行压缩

hz:创建或者打开zip的文件指针

dstzn:在zip文件中显示的文件名

src:对于(ZIP_FILENAME 压缩)的情况,这个是需要添加到压缩包的文件的名字,需要给出具体的路径,若没有绝对路径那么默认当前工作目录下

len:对于压缩内存的内容(ZIP_MEMORY)这是压缩内存的大小,其他情况,这个应该是0

flags:如果是压缩文件,这个标志是ZIP_FILENAME

returns:ZRESULT  成功为ZR_OK

HZIP OpenZip(void *z, unsigned int len, DWORD flags);打开一个已经存在的压缩文件

z:压缩文件名  【相对路径一般为当前工作目录】

len:对于压缩内存的内容(ZIP_MEMORY)这是压缩内存的大小,其他情况,这个应该是0

flags:如果是压缩文件,这个标志是ZIP_FILENAME

returns: HZIP  非0为成功,0这是失败

ZRESULT GetZipItemA(HZIP hz,int index,ZIPENTRY * ze);    //获取压缩文件里的信息
ZRESULT GetZipItemW(HZIP hz,int index,ZIPENTRYW * ze);//获取压缩文件里的信息

hz:创建/打开zip文件指针

index:zip文件里的元素下标(0开始)

ze:一个指向ZIPENTRY结构体指针(ANSI)或者ZIPENTRYW(Unicode宽字节)

returns:ZRESULT  成功为ZR_OK

ZRESULT FindZipItemA(HZIP hz, const TCHAR *name, bool ic, int *index, ZIPENTRY *ze);     //在压缩文件里查找某元素
ZRESULT FindZipItemW(HZIP hz, const TCHAR *name, bool ic, int *index, ZIPENTRYW *ze);//在压缩文件里查找某元素

hz:创建/打开zip文件指针

name:需要在zip文件中查找的元素名字

ic:值为TRUE大小写不敏感

index:返回要查找元素的下标,否则是-1,

ze:一个指向ZIPENTRY结构体指针(ANSI)或者ZIPENTRYW(Unicode宽字节)

returns:ZRESULT  成功为ZR_OK

ZRESULT UnzipItem(HZIP hz, int index, void *dst, unsigned int len, DWORD flags)  //解压压缩文件里面的某元素

hz:创建/打开的zip文件指针

index:要解压的元素下标

dst:解压出来的文件名字

len:对于压缩内容(ZIP_MEMORY)这个值是压缩内存的大小,其他情况,这个值应该是0

flags:如果是压缩文件,那么使用这个标志ZIP_FILENAME

returns:ZRESULT 成功返回ZR_OK

ZRESULT CloseZipZ(HZIP hz);   //关闭压缩文件

hz:要操作的zip文件指针

returns:ZRESULT 成功返回ZR_OK

注意压缩文件的路径,即可随心所欲压缩。

C++ 使用老牌库xzip & unzip对文件进行压缩解压的更多相关文章

  1. Linux_文件打包,压缩,解压

    一.压缩命令 文件格式:*.gz 命令:gzip 文件名 (ps:不能压缩目录,切压缩后不保留原文件) 压缩前 -rw-r--r--. 1 root root 315 Sep 6 21:03 df.t ...

  2. 【.Net Core】ZipFile类--文件的压缩解压

    NuGet引用官网自带的System.IO.Compression.ZipFile; var filename = "测试压缩解压文件"; var path = Directory ...

  3. python对文件的压缩解压

    python自带的zipfile的模块支持对文件的压缩和解压操作 zipfilp.ZipFile 表示创建一个zip对象 zipfile.ZipFile(file[, mode[, compressi ...

  4. 使用PHP对文件进行压缩解压(zip)

    使用虚拟主机进行文件上传时最常用的工具莫过于FTP了,但是使用FTP有一个弊端就是文件太多时上传或下载速度比较慢,如果上传时将文件打包,上传后在 空间解压缩,同样下载前将文件打包压缩以压缩包的形式下载 ...

  5. 使用C#压缩解压rar和zip格式文件

    为了便于文件在网络中的传输和保存,通常将文件进行压缩操作,常用的压缩格式有rar.zip和7z,本文将介绍在C#中如何对这几种类型的文件进行压缩和解压,并提供一些在C#中解压缩文件的开源库. 在C#. ...

  6. C#文件或文件夹压缩和解压方法(通过ICSharpCode.SharpZipLib.dll)

    我在网上收集一下文件的压缩和解压的方法,是通过ICSharpCode.SharpZipLib.dll 来实现的 一.介绍的目录 第一步:下载压缩和解压的 ICSharpCode.SharpZipLib ...

  7. 分享一个ASP.NET 文件压缩解压类 C#

    需要引用一个ICSharpCode.SharpZipLib.dll using System; using System.Collections.Generic; using System.Linq; ...

  8. linux笔记:压缩解压命令gzip,gunzip,tar,zip,unzip,bzip2,bunzip2

    命令名称:gzip功能:压缩文件命令所在路径:/bin/gzip用法:gzip 文件压缩后文件格式:.gz其他:压缩后不保留原文件:只能压缩文件,不能压缩目录 命令名称:gunzip功能:解压.gz格 ...

  9. linux驱动系列之文件压缩解压小节(转)

    转至网页:http://www.jb51.net/LINUXjishu/43356.html Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通 ...

随机推荐

  1. centos 6.5 查看 IP

    ip 和 ifconfig 两个命令都可以,但现在推荐使用 ip ip addr ifconfig

  2. Python中的"Special Method"

    The first thing to know about special methods is that they are meant to be called by the Python inte ...

  3. find命令进阶(三):xargs

    The xargs command performs an interesting function. It accepts input from standard input and convert ...

  4. day07作业猜年龄游戏

    # 给定年龄,用户可以猜三次年龄 # # 年龄猜对,让用户选择两次奖励 # # 用户选择两次奖励后退出 get_prize_dict = {} # 获取的奖品信息 age = 18 inp_count ...

  5. Linux命令行工具之free命令

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11524691.html 使用 free 查看整个系统的内存使用情况 Note:不同版本的free输出可 ...

  6. 【NLP新闻-2013.06.03】New Book Where Humans Meet Machines

    英语原文地址:http://nlp.hivefire.com/articles/share/39865/ 注:本人翻译NLP新闻只为学习专业英语和扩展视野,如果翻译的不好,请谅解! (我挺想看这本书的 ...

  7. SGU 194 Reactor Cooling (无源上下界网络流)

    The terrorist group leaded by a well known international terrorist Ben Bladen is buliding a nuclear ...

  8. scipy与sklearn下载与安装

    一.scipy下载与安装 scipy下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv提供各种包whl文件 下载之后放到Scripts文件中 ...

  9. BUUCTF | 高明的黑客

    这一题一开始我没有理解"www.tar.gz"的涵义,还以为有一个其他的网站叫这个,后来才突然顿悟他也有可能是一个目录!!!地址栏输入”/www.tar.gz“ 然后就可以得到源码 ...

  10. python-zx笔记2-help

    在cmd运行 查看模块的方法: help—查看模块的函数 1 help()