下载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*
百度搜“vczip,unzip打包,解包”第一个就有详细讲解。
在老版本VC下,codeproject提供的这个压缩代码已经是很好的了,几乎都是用的这个。
在高版本VC/VS下,系统api提供的压缩解压的API接口,没必要自己写算法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)