设为首页 加入收藏

TOP

使用VC++压缩解压缩文件夹(四)
2014-11-23 19:19:21 】 浏览:713
Tags:使用 压缩 文件夹
数说明: 获取相对路径
258// 参数说明: [in]:pFullPath 当前文件的完整路径 [out] : 解析后的相对路径
259// 函数作者:
260// 创建日期: 2009-9-28 上午 11:17:21
261/////////////////////////////////////////////////////////////////////////////
262void CZipImplement::GetRelativePath(CString& pFullPath,CString& pSubString)
263{
264 pSubString = pFullPath.Right(pFullPath.GetLength() - this->m_FolderPath.GetLength() + this->m_FolderName.GetLength());
265}
266
267/////////////////////////////////////////////////////////////////////////////
268// 函数说明: 创建多级目录
269// 参数说明: [in]: 路径字符串
270// 返回值: BOOL 成功True 失败False
271// 函数作者:
272// 创建日期: 2009-9-28 下午 04:53:20
273/////////////////////////////////////////////////////////////////////////////
274BOOL CZipImplement::CreatedMultipleDirectory(wchar_t* direct)
275{
276 std::wstring Directoryname = direct;
277
278 if (Directoryname[Directoryname.length() - 1] != '\\')
279 {
280 Directoryname.append(1, '\\');
281 }
282 std::vector< std::wstring> vpath;
283 std::wstring strtemp;
284 BOOL bSuccess = FALSE;
285 for (int i = 0; i < Directoryname.length(); i++)
286 {
287 if ( Directoryname[i] != '\\')
288 {
289 strtemp.append(1,Directoryname[i]);
290 }
291 else
292 {
293 vpath.push_back(strtemp);
294 strtemp.append(1, '\\');
295 }
296 }
297 std::vector:: const_iterator vIter;
298 for (vIter = vpath.begin();vIter != vpath.end(); vIter++)
299 {
300 bSuccess = CreateDirectory(vIter->c_str(), NULL) TRUE :FALSE;
301 }
302
303 return bSuccess;
304}
=====================以上为源代码=====================
简单说明:
1.使用VS2003编写.
2.WinXp sp2下运行测试通过.
3.为了简化算法,使用了很多MFC提供的函数, 如果要移植到标准C++请重新实现部分函数.
4.压缩算法采用了ljw1004 这位高手的算法.
5."zip.h" 和 "unzip.h"以及实现请至http://www.codeproject.com/KB/files/zip_utils.aspx 下载, 下载的源文件中有示例程序可以参考.
将下载后的 zip.h unzip.h zip.cpp unzip.cpp 添加到自己的项目中.
后记:第一次使用VC++开发项目,遇到了很多问题,对于相关的问题和我自己的解决办法将在以后的文章中给出.
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VC中Tab control的用法 下一篇VC实现将对话框最小化到系统托盘

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目