计算机考试文件压缩,使用VC++压缩解压缩文件夹

本文介绍了如何在VS2003环境下使用C++编写CZipImplement类,包括GetRelativePath函数用于获取文件的相对路径,以及CreatedMultipleDirectory函数创建多级目录的方法。代码示例涉及字符串操作和MFC库的使用,适合移植至C++标准环境并提供了相关下载资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<:wstring>:: 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}

=====================以上为源代码=====================

简单说明:使用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 添加到自己的项目中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值