0
点赞
收藏
分享

微信扫一扫

bundle库解压缩

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();
}
举报

相关推荐

0 条评论