求一压缩解压方案.请各位帮帮忙.(100分)

  • 主题发起人 主题发起人 wei0916
  • 开始时间 开始时间
W

wei0916

Unregistered / Unconfirmed
GUEST, unregistred user!
现在有一个文件夹里有多个文件(100个以上),文件格式都为一样,比如后缀名都是为'YT'的自定义文件.现在想把他们压缩成一个文件(这里假设压缩成为一个叫'ALL.YYT'的文件).请问有没有好的方法.
最关键的是,还要在这个ALL.YYT文件的文件头或者文件尾加入一些信息.有没有办法呀.各位大虾们
因为我在解压的时候要先读取自定义信息,再作一些处理,各位帮忙了.
 
取得文件列表,逐个文件压缩(加一个数据包头指明标志、长度),全部写道一个文件
 
取文件列表没有问题,能否详细一点呢.
 
随便找个 数据压缩的控件 比如 VCLZIP BackUp等等 都可以达到这个效果
 
那些控件能加入自定义信息吗.
 
用delphi调用arj压缩.
 
可以的 你下个控件 再下该控件相关的说明文挡查查 它的调用
 
下了个ZIPTV,看得头都大了,.我本想建一个流TMEMORYSTREAM,然后一个一个读入文件,再压缩保存.
但在实现的时侯,发现流不支持用动态数组去读数据
Tw.Read(Tmpreadbuff,high(Tmpreadbuff));//先读出到缓冲区
TW是TMEMORYSTREAM,TMPREADBUFF是固定数组,为什么流读数据一定要固定数组呢.
 
all.yyt分2部分,一部分存放文件列表清单(至少包含:文件名,长度),一部分存各个文件;解压缩时先读all.yyt的文件头部分的文件清单信息,根据用户选择的文件取各个文件的长度计算偏移地址
只是一个思路,提供你参考[:)]
 
其实我的思路也是这样的.但是实际不知从哪里下手.
 
先取得所有文件的大小信息,然后定义一个动态数组,将所有信息读入,用文件流的方式写入,解压时也是这样.但要在特定的区域写一个包头,里面包括文件信息个数,长度等,在解压时再分步进行解折.就可以还原.
 
多人接受答案了。
 
后退
顶部