C++解压zip文件
来源:互联网 发布:android js框架 编辑:程序博客网 时间:2024/06/10 02:42
/************************************************************************/
/* 对指定文件夹下面的zip压缩文件进行解压
/* sourcePath: zip压缩包所在路径
/* targetPath: 解压后的路径
/* bNeedDel: 是否删除源zip压缩包文件
/************************************************************************/
bool UnzipFile(char* sourcePath,char * targetPath, bool bNeedDel)
{
ZIPENTRY ze;
CFileFind fileFinder;
CString filePath = CString(sourcePath) + _T("//*.*");
BOOL bFinished = fileFinder.FindFile(filePath);
while(bFinished) //每次循环对应一个类别目录
{
bFinished = fileFinder.FindNextFile();
CString fileName = fileFinder.GetFileName();
int dotPos=fileName.ReverseFind('.');
CString fileExt=fileName.Right(fileName.GetLength()-dotPos);
CString strZipPath = fileName.Mid(0,dotPos);
if(fileExt == _T(".zip")) //若是txt文件则开始分类测试
{
CString strZipName = CString(sourcePath) + CString("\\") + fileName;
//CString strUnZipPath = CString(targetPath) + CString("\\") + strZipPath;
CString strUnZipPath = CString(targetPath);
if(!PathFileExists(strUnZipPath))
{
CreateDirectory(strUnZipPath,NULL);
}
HZIP hz = OpenZip(strZipName.GetBuffer(0), 0, ZIP_FILENAME);
if (hz)
{
GetZipItem(hz, -1, &ze);
int iCount= ze.index;
for(int i=0; i<iCount; i++)
{
GetZipItem(hz, i, &ze);
CString strZipTargetName = CString(strUnZipPath) + CString("\\") + ze.name;
ZRESULT zr = UnzipItem(hz, i, strZipTargetName.GetBuffer(0), 0, ZIP_FILENAME);
}
}
CloseZip(hz);
}
}
if(bNeedDel)
{
CString filePath = CString(sourcePath) + _T("//*.*");
BOOL bFinished = fileFinder.FindFile(filePath);
while(bFinished) //每次循环对应一个类别目录
{
bFinished = fileFinder.FindNextFile();
CString fileName = fileFinder.GetFileName();
if(fileName.Compare(".")==0)
continue;
if(fileName.Compare("..")==0)
continue;
if(fileName.GetLength()>0)
{
DeleteFile(CString(sourcePath)+CString("\\") + fileName);
}
}
}
fileFinder.Close();
return true;
}
- cocos2d zip文件解压(C++)
- iOS objective-c 解压zip,rar文件
- nodejs zip 解压zip文件
- Zip文件解压
- Java解压zip文件
- zip文件上传下载 解压
- 解压*.zip.*的文件
- zip文件解压
- Android 解压zip文件
- zip文件目录解压
- 解压.zip文件命令
- android解压ZIP文件
- Android 解压zip文件
- 文件解压zip
- Android 解压zip文件
- zip文件解压
- android, 解压Zip文件
- zlib 解压zip文件
- Linux 备忘录
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- .net 4.0 之后的协变与逆变
- 在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。
- JavaAPI之CopyOnWriteArrayList
- C++解压zip文件
- solr 4.7.2 环境搭建(比较齐全的参考)
- 各种数据库连接字符串
- C语言选择排序详解及其实现
- PHP笔记11-day15
- Cocoa Touch事件处理流程--响应者链
- sole单机模式配置HttpSolrServer
- C++ 删除指定路径文件夹
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序