如何把zip文件直接解压到内存里?


解压到硬盘再读进来耽误时间。

 

var
  LZip: TZipFile;
  LMem: TMemoryStream;
  LBytes: TBytes;
begin
  LZip := TZipFile.Create;
  try
    LMem := TMemoryStream.Create;
    try
      LMem.LoadFromFile('xxxx.zip'); // 演示加载到内存流
      LMem.Position := 0;
      // 这里打开流
      LZip.Open(LMem, zmRead);
      // 读取第一个,读出来的就是被解压的
      LZip.Read(0, LBytes);
    finally
      LMem.Free;
    end;
  finally
    LZip.Free;
  end;

 

系统自带的没用过,就用过第三方的。
ZipForge是可视化的控件,非常简单易用,看看源代码就能学会。
JCL是运行库,里面有目前所有还活着的压缩格式的解压和压缩库,都支持内存流操作。
具体怎么用,最好自己去学习一下,增加一下自己的能力。

 

我用的ZipForge,可以用Stream方式直接读取zip中某个文件

 

http://bbs.2ccc.com/topic.asp?topicid=527880


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM