解压到硬盘再读进来耽误时间。
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