利用ZipArchive库进行压缩和解压文件
2013-03-13 10:25
204 查看
最近需要修改以前做的一个下载程序,主要是增加压缩和解压的功能,以减少网络带宽的消耗.去论坛咨询了一下网友,于是借助开源库ZipArchive来实现我要的功能。初步看了一下ZipArchive文档,简单地封装了一下压缩和解压功能.代码如下:
/* * CompressZipFile: 压缩文件 * lpszFile: 需要压缩的文件 * lpszZipFile: 要压缩到的目标文件 * bAppend: 标志是否添加到现有压缩文件 * 返回压缩成功与否 */ BOOL CompressZipFile( LPCTSTR lpszFile, LPCTSTR lpszZipFile, BOOL bAppend = FALSE ) { //如果是追加到现有压缩文件,但现有压缩文件不存在的话 直接返回失败 if( bAppend && ( !::PathFileExists( lpszZipFile ) ) ) return FALSE; int nMode = bAppend ? CZipArchive::zipOpen : CZipArchive::zipCreate; CZipArchive zipArchive; if( !zipArchive.Open( lpszZipFile, nMode ) ) return FALSE; //获取路径中的文件名部分 TCHAR szFile[MAX_PATH]; lstrcpy( szFile, lpszFile ); ::PathStripPath( szFile ); bool bRet = zipArchive.AddNewFile( lpszFile, szFile ); zipArchive.Close(); return bRet; } /* * ExtractZipFile : 解压指定文件 * lpszZipFile: 要解压的文件 * lpszDestPath: 指定解压到的目录 * 返回压缩成功与否 */ BOOL ExtractZipFile( LPCTSTR lpszZipFile, LPCTSTR lpszDestPath ) { if( !::PathFileExists( lpszZipFile )) return FALSE; CZipArchive zipArchive; if( !zipArchive.Open( lpszZipFile, CZipArchive::zipOpenReadOnly ) ) return FALSE; for ( int nIndex = 0; nIndex < zipArchive.GetCount (); nIndex++ ) { if( !zipArchive.ExtractFile( (WORD)nIndex, lpszDestPath ) ) break; } zipArchive.Close(); return TRUE; }
CZipArchive zipArchive; if( !zipArchive.Open( _T("D:\\手绘古景.zip") , CZipArchive::zipCreate ) ) return; //压缩目录下的所有文件,第三个参数指示是否递归压缩子目录,第五个参数指示是否连文件夹目录一起压缩 zipArchive.AddNewFiles( _T("D:\\手绘古景\\"), _T("*.*"), true, -1, false ); zipArchive.Close();
相关文章推荐
- 利用ZipArchive库进行压缩和解压文件
- 利用c#自带的类对文件进行压缩和解压处理
- (一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
- (一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
- 利用YUI Compressor对JS、CSS文件进行压缩
- 在C#中利用SharpZipLib进行文件的压缩和解压缩(转)
- 对文件或文件夹进行压缩解压加密解密
- C#利用SharpZipLib进行文件的压缩和解压缩
- ZipControl对文件进行压缩与解压的方法
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- c#程序操作文件进行压缩和解压
- 利用java的ZipOutputStream类压缩文件,解压文件或文件夹中的文件
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- 使用ZLIB生成DLL文件,并进行有中文的ZIP文件压缩与解压操作!支持目录压与解!
- 利用VC调用WinRAR解压和压缩文件
- 使用PHP对文件进行压缩解压(zip)
- 【数据结构与算法】 利用哈夫曼树进行文件压缩 (部分借鉴网上内容)
- 利用apache ant 包进行压缩、解压缩zip,归档tar,解档tar,压缩tar.gz解压tar.gz
- 在C#中利用SharpZipLib进行文件的压缩和解压缩
- 使用ICSharpCode.SharpZipLib对文件进行压缩或解压