设为首页 加入收藏

TOP

使用VC++压缩解压缩文件夹
2014-11-23 18:00:44 】 浏览:183
Tags:使用 压缩 文件夹

  前言 项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码,都不是很称心, 现在把我自己实现的代码和大家分享.


  要求:


  1.使用Unicode(支持中文).


  2.使用源代码.(不使用静态或者动态库)


  3.实现文件夹压缩解压缩即可.(不提供单文件压缩和内存压缩)


  4.压缩格式为ZIP.


  5.具有一定的容错能力.(判断用户输入的内容)


  代码如下:


  *********************ZipImplement.h********************


  ZipImplement.h


  1/**//////////////////////////////////////////////////////////////////////////////


  2// 文件名:


  3//创建者:


  4//创建日期: 2009-09-27下午04:51:46


  5//


  6//说明:压缩解压缩地图文件夹


  7/**//////////////////////////////////////////////////////////////////////////////


  8


  9#pragma once


  10


  11#include "zip.h" 12#include "unzip.h"


  13


  14class CZipImplement


  15{


  16public:


  17 CZipImplement(void);


  18 ~CZipImplement(void);


  19


  20private:


  21 HZIP hz; //Zip文件句柄


  22 ZRESULT zr; //操作返回值


  23 ZIPENTRY ze; //Zip文件入口


  24


  25 CString m_FolderPath; //folder路径


  26 CString m_FolderName; //folder将要被压缩的文件夹名


  27


  28private:


  29 //实现遍历文件夹


  30 void BrowseFile(CString &strFile);


  31


  32 //获取相对路径


  33  void GetRelativePath(CString& pFullPath, CString& pSubString);


  34


  35 //创建路径


  36 BOOL CreatedMultipleDirectory(wchar_t* direct);


  37 /**////*


  38 //***********************************************************************


  39 //*函数:TransCStringToTCHAR


  40 //*描述:将CString转换为TCHAR*


  41 //***********************************************************************


  42 //*/


  43 //TCHAR* CString2TCHAR(CString &str)


  44 //{


  45  //  int iLen = str.GetLength();


  46 // TCHAR* szRs = new TCHAR[iLen];


  47  //  lstrcpy(szRs, str.GetBuffer(iLen)); 48  //  str.ReleaseBuffer();


  49 // return szRs;


  50 //}


  51


  52public:


  53 //压缩文件夹接口


  54  BOOL Zip_PackFiles(CString& pFilePath, CString& mZipFileFullPath);


  55


  56 //解压缩文件夹接口


  57  BOOL Zip_UnPackFiles(CString &mZipFileFullPath, CString& mUnPackPath);


  58


  59public:


  60 //静态方法提供文件夹路径检查


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Win32编程点滴之窗口的位置 下一篇VisualC++ADO数据库编程入门(1)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目