如何把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

原文地址:https://www.cnblogs.com/findumars/p/6407413.html