在VC中如何使用zlib解压缩文件

在VC中如何使用zlib解压缩文件,第1张

1 准备工作。

下载zlib.dll。以及相关头文件。将dll文件及头文件加入工程。

2 压缩:

调用函数compress.

形式为

int compress(Byte * dest, uLong* destLen, const Byte *source, ULONG sourceLen)

功能是将source指向的空间,长度为sourceLen的数据进行压缩,压缩数据储存在dest中,长度由参数destLen返回。

如果压缩出错,返回对应错误号,否则返回0.

3解压缩:

调用函数uncompress.

形式为

int uncompress(Byte * dest, uLong* destLen, const Byte *source, ULONG sourceLen)

功能是将source指向的空间,长度为sourceLen的数据进行解压缩,解压缩后的数据储存在dest中,长度由参数destLen返回。

如果解压缩出错,返回对应错误号,否则返回0.

system("C:/Progra~1/WinRAR/WinRAR.exe a -ibck C:/bak.rar C:/aa.txt C:/bb.txt")

原理:WinRAR支持命令行 *** 作。启动WinRAR并传入相应的压缩参数即可完成文件的压缩与解压。启动外部应用程序也可以使用WinExec,ShellExecute ,CreateProcess等api函数。

有关winrar的命令行参数基本如下,详情可自行百度:winrar.exe 命令行参数 

[语法]

RAR <命令>   [ -<开关>]   <压缩文件>   [ <@列表文件...>]

RAR [ <文件...>]   [ <解压路径/>]

一.简单的例子和说明:

压缩文件夹

winrar.exe a -ag -k -r -s -ibck c:/bak.rar c:/dat/

压缩多个文件

winrar a -ag -ibck bak.rar filename1 filename2

参数说明

winrar.exe:运行winrar,

如果winrar.exe没在默认路径中则需要指明路径,如c:/Progra~1/winrar/winrar.exe ...;

a :备份所有文件;

-ag :当创建压缩文件时,以格式“YYYYMMDDHHMMSS”附加当前日期字符串,文件名bakYYYYMMDDHHMMSS.rar;

-k :锁定压缩文件;

-r:备份目录和子目录;

-s :创建固实压缩文件;

-ibck :后台运行;

c:/bak.rar :备份的路径和基本名称(-ag参数会自动在bak后加上系统当前时间),

也可不用-ag参数,通过“%date:~0,4%%date:~5,2%%date:~8,2%”取得时间字串,

也可写作c:/bak.zip;

c:/dat/ :要备份的文件目录。

filename1:要压缩的文件名,可以多个,也可用通配符file*

百度搜“vc

zip,unzip打包,解包”第一个就有详细讲解。

在老版本VC下,codeproject提供的这个压缩代码已经是很好的了,几乎都是用的这个。

在高版本VC/VS下,系统api提供的压缩解压的API接口,没必要自己写算法。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11550036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存