• 文件打包学习


    /**************************************************************
    技术博客
    http://www.cnblogs.com/itdef/
     
    技术交流群
    群号码:324164944
     
    欢迎c c++ windows驱动爱好者 服务器程序员沟通交流
    **************************************************************/

    一般文件是为了整合零散文件和进行压缩节约空间,不过也有诸如加密记录文件依赖性等特殊要求。

    这里学习打包代码写几个小例子。

    首先最原始的设计肯定是读取零散的文件,写入到一个大文件中。当然,肯定要记录文件的名字和文件长度以及这个零散文件在大文件中的偏移。

    如图

    #pragma once
    #include <fstream>  
    
    using namespace std;
    
    struct ItemInfo {
        int64_t itemTotalLen_;
        int64_t    fileLength_;
        int64_t    itemOffset_;
        char name[0];
    };
    
    
    class MyPackage1 {
    private:
        fstream*    packageFile_;
    public:
        MyPackage1():packageFile_(NULL){}
        ~MyPackage1() {
            if(NULL != packageFile_){
                packageFile_->close();
                delete packageFile_;
                packageFile_ = NULL;
            }
        }
    
        bool CreatePackFile(const char* fileName);
        bool AddFileToPackFile(const char* fileName);
        bool GetPackFileItemInfo(const char* fileName);
    };
    View Code

    第二版:

    // MyPackage2.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include "MyPackage.h"
    
    
    int main()
    {
        
        {
            MyPackage2 pack;
            pack.CreatePackFile("test.pak");
            pack.AddFileToWriteList("1.rar");
            pack.AddFileToWriteList("2.rar");
            pack.SavePackFile();
        }
        
        {
            MyPackage2 pack;
            pack.LoadPackAndUnpack("test.pak");
        }
        
        return 0;
    }
    View Code

    具体代码见oschina

    http://www.oschina.net/code/snippet_614253_56608

  • 相关阅读:
    到具体某一天的倒计时
    angular2 2种方式----获取子组件的类属性和类方法
    页面刷新
    angular父子组件传值
    div垂直居中,文字垂直居中!!!
    Python 基础数据类型 II (列表)
    Python 基础数据类型 I (str等)
    学习笔记411
    20190407 Word合并单元格
    VBA正则笔记 理解肯定环视
  • 原文地址:https://www.cnblogs.com/itdef/p/5536957.html
Copyright © 2020-2023  润新知