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