前段时间写了个小工具, 给大家分享下.可以将多个文件合成一个自定义格式的文件, 也可以把这个自定义的文件分解成原来的多个文件.http://download.csdn.net/source/1739722

解决方案 »

  1.   

    恩, ls说的对, 和复合文档类似, 我的实现过程是:内容 数据长度(字节) 说明
    文件头 1024 文件描述
    文件数量 4
    MD5效验码 16 MD5效验码
    第1个文件起始地址 4
    第1个文件长度 4
    第1个文件名称 512
    第1个文件目录路径 520
    第1个文件描述 512
    第2个文件起始地址 4
    第2个文件长度 4
    第2个文件名称 512
    第2个文件目录路径 520
    第2个文件描述 512
    …… …… ……
    第N个文件起始地址 4
    第N个文件长度 4
    第N个文件名称 512
    第N个文件目录路径 520
    第N个文件描述 512
    第1个文件实体 x
    第2个文件实体 x
    …… …… ……
    第N个文件实体 x
      

  2.   


    恩, 没有压缩,就是简单的文件合成, 如果参考ZipArchive实现压缩解压缩, 或者说根据pe加壳的话, 应用会更广, 这个demo就是说了下基本原理. 呵呵.
      

  3.   

    不是, 呵呵这个保存原来的路径是 合成文件要用到. 打包时根据路径找到所有的文件, 然后以2进制读取到buffer里, 根据合成文件的格式写进去. 
    解包时是根据有文件count和文件的初始值\大小, 从合成文件的对应地址读出数据 写成原来文件的名字和格式. 呵呵.