就像Winzip或WinRar一样,只是我不需要压缩只需将多个不同格式的文件合在一起,成为一个文件.各位大虾有什么思路吗?

解决方案 »

  1.   

    最好使用结构化存储。
    一个文件存储为一个Stream.
      

  2.   


    happyparrot和tigerjacky的方法也是我考虑过的,但还没试过.结构化存储可以实现多个文件和成一个文件吗?
      

  3.   


    谁有相关例子,发来参考参考可以吗[email protected]
      

  4.   

    用压缩组件,(免费的好多或者自己写(有这样的API))把他们压缩成一个文件
      

  5.   

    用一个支持序列化的文件类型类来代表一种文件类型,用一个文件头类来序列化生成后的文件的头(头里至少有说明这个文件里实际包含的文件个数、文件类型等信息),调用某文件类型的Serialize来写入或读取该类文件,简单来着!如果需要压缩(简单的压缩),在Serialize里加入压缩编/解码处理就OK了。
      

  6.   

    happyparrot(快乐鹦鹉) 
    二进制方式打开,然后顺序都写到一个文件中。网上有将几个exe文件合并成一个文件的资料去搜索一下
    关键字:vc++ 文件合并
      

  7.   

    我想把1个视频文件,2个mp3文件,3个BMP位图,4个word文档...等多个不同文件类型的文件拼接在一起,有思路吗? 

    cpoy
    再加上参数 +Microsoft Windows 2000 [Version 5.00.2195]
    (C) 版权所有 1985-2000 Microsoft Corp.C:\Documents and Settings\Administrator>help copy
    将一份或多份文件复制到另一个位置。COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
         [+ source [/A | /B] [+ ...]] [destination [/A | /B]]  source       指定要复制的文件。
      /A           表示一个 ASCII 文本文件。
      /B          表示一个二进位文件。
      destination  为新文件指定目录和/或文件名称。
      /V           验证新文件写得正确。
      /N           当复制一份带有非 8dot3 名称的文件,
                   如果可能的话,使用短文件名。
      /Y           取消提示以确认您希望改写
                   一份现存目录文件。
      /-Y          引起提示确认您想改写一份
                   现存目标文件。
      /Z           用可重新启动模式复制已联网的文件。命令选项 /Y 可以在 COPYCMD 环境变量中预先设定。
    这可能会被命令行上的  /-Y 替代。除非 COPY
    命令是在一个批文件脚本中执行的,默认应为
    在改写时提示。要附加文件,请为目标指定一个文件,为源指定
    数个文件(用通配符或 file1+file2+file3 格式)。C:\Documents and Settings\Administrator>
      

  8.   

    文件是你自己写的, 当然是想怎么写就怎么写, 就算你要把n个不同的文件写到一起也没有什么特殊
    只不过你要保证写进去以后还能够正确的分离出来, 所以文件头必须定义好(每个文件的类型, 大小,偏移位置等等)或者你可以利用一些标准的文件格式, 比如riff文件, asf文件等等
    以avi文件为例子, 你可以把每个不同的文件作为一个avi stream写入到一个avi文件中
    对于asf文件来说, 通过自定义profile, 也可以把任意格式的数据作为input stream写入进去总之关键不在怎么写,在在于你要怎么读取出来