使用zip压缩文件夹方法

  最近使用MapGis对.MPJ工程文件文件裁剪后,要对裁剪后的图形文件.ML,.MT,.MP,.MPJ文件打包,在网上找到7zip,Zlib的库,虽然都有源码,但是Zlib库中的使用没找到文件压缩的函数,有两个函数a.ZEXTERN int ZEXPORT compress OF((Bytef *dest,   uLongf *destLen, const Bytef *source, uLong sourceLen));b.ZEXTERN int ZEXPORT uncompress OF((Bytef *dest,   uLongf *destLen,const Bytef *source, uLong sourceLen));这两个函数貌似是对字符解压缩的,找了没有找到好的方法(可能不了解Zlib的用法),然后在一个网站上找到zip解压缩的方法,使用了一下,发现使用方法简单。

  这个Zip Utils库可能是别人在其他库的基础上封装的,具体什么库我也不清楚。这个库很简单就只有unzip,zip这两个类,要对文件夹压缩可以这样使用。

1   CreateFiles();//可以不需要,指定目录即可
2   HZIP hz; 
3 // EXAMPLE 1 - create a zipfile from existing files 4 hz = CreateZip(_T("\\simple1.zip"),0); 5 ZipAdd(hz,_T("znsimple.bmp"), _T("\\simple.bmp")); 6 ZipAdd(hz,_T("znsimple.txt"), _T("\\simple.txt")); 7 CloseZip(hz); 8 _tprintf(_T("Created '\\simple1.zip'\n"));

  使用起来很简单,只需要定义一个HZIP 对象,然后创建一个压缩文件,之后要做的就是调用ZipAdd函数将要压缩的文件添加到压缩文件中,最后是关闭Zip文件。这个库使用起来很方便,之前也试过用WinRar软件的命令生成.rar的压缩文件,但是问题是WinRar不开源,使用的时候要知道WinRar的安装路径,对其有依赖性,而且是否压缩完了,不得而知,不知大牛们有没有好的方法?

  Zip Utils - clean, elegant, simple, C++/Win32

  这个库的下载地址:http://www.codeproject.com/Articles/7530/Zip-Utils-clean-elegant-simple-C-Win32

posted @ 2013-12-04 14:00  Jimnny  阅读(5546)  评论(3编辑  收藏  举报