bundle库解压缩
我们将上一节的压缩文件进行解压缩:
//使用bundle库实现解压缩
#include "bundle.h"
#include <iostream>
#include <fstream>
#include <string>
int main(int argc,char* argv[])
{
std::cout << "argv[1]是压缩包文件名称\n";
std::cout << "argv[2]是要解压之后的文件名称\n";
if(argc < 3)
{
std::cout << "参数个数错误\n";
return -1;
}
std::string ifilename = argv[1];//压缩包名称
std::string ofilename = argv[2];//要解压的文件名称
//将压缩包中的数据读取出来
std::ifstream ifs;
ifs.open(ifilename,std::ios::binary);
//跳转到文件末尾
ifs.seekg(0,std::ios::end);
//计算文件大小
size_t fsize = ifs.tellg();
//跳转到文件开始位置
ifs.seekg(0,std::ios::beg);
//定义一个string用来保存数据
std::string body;
body.resize(fsize);
ifs.read(&body[0],fsize);
//关闭文件
ifs.close();
//对文件进行解压
std::string unpacked = bundle::unpack(body);//直接将body传入就可以解压
//打开要解压之后的文件
std::ofstream ofs;
ofs.open(ofilename,std::ios::binary);//以二进制形式打开文件
ofs.write(&unpacked[0],unpacked.size());//将解压后的文件写入当前文件
ofs.close();
}
标签:std,int,解压缩,bundle,压缩文件,include
From: https://blog.51cto.com/u_15562309/7401570