C++调用windowsAPI实现目录zip压缩

 TCHAR zipname[] = "C:\\bcel"; TCHAR zipfile [FILENAME_MAX]; sprintf(zipfile, "%s.zip", zipname); if(Exists(zipfile)) { int num = 2; while(Exists(zipfile)) sprintf(zipfile, "%s%d.zip", zipname, num++); } HZIP hz = CreateZip(zipfile,0); deque<string>folderList; TCHAR folderpath[MAX_PATH]="D:\\Desktop\\Desktop\\bcel-5.2"; folderList.push_back(string(folderpath)); while(folderList.size()>0) { WIN32_FIND_DATA finddata; string pathfile=folderList.front(); string subdir=pathfile; pathfile.append("\\*.*"); HANDLE handleFind = FindFirstFile(pathfile.c_str(),&finddata); //FindFirstFile folderList.pop_front(); if(handleFind != INVALID_HANDLE_VALUE) { do { if(finddata.cFileName[0]=='.') continue; else if(finddata.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { string subpath=subdir; subpath.append("\\"); subpath.append(finddata.cFileName); folderList.push_back(subpath); } else { string filename=subdir; filename.append("\\"); filename.append(finddata.cFileName); string zipdir = filename.substr(strlen(folderpath)+1); ZipAdd(hz,zipdir.c_str(),filename.c_str()); } }while(FindNextFile(handleFind,&finddata)); FindClose(handleFind); } } CloseZip(hz);

转载于:https://www.cnblogs.com/daochong/p/7146283.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值