delphi 压缩和解压文件

需要引入system.ZLib包

procedure TFormMain1.Button25Click(Sender: TObject);   //压缩
var
  LInput, LOutput: TFileStream;
  LZip: TZCompressionStream;
begin
  inherited;
  LInput := TFileStream.Create(Edit2.Text, fmOpenRead);   //需要压缩的文件
  LOutput := TFileStream.Create(Edit3.Text + '.zip', fmCreate);  //压缩完成的文件
  LZip := TZCompressionStream.Create(LOutput);

  LZip.CopyFrom(LInput, LInput.Size);

  LZip.Free;
  LInput.Free;
  LOutput.Free;

end;

procedure TFormMain1.Button26Click(Sender: TObject);   //解压
var
  LInput, LOutput: TFileStream;
  LUnZip: TZDecompressionStream;

begin
  { Create the Input, Output, and Decompressed streams. }
  LInput := TFileStream.Create(Edit2.Text, fmOpenRead);  //解压的文件
  LOutput := TFileStream.Create(ChangeFileExt(Edit3.Text, '.txt'), fmCreate);  //解压后的文件
  LUnZip := TZDecompressionStream.Create(LInput);

  { Decompress data. }
  LOutput.CopyFrom(LUnZip, 0);

  { Free the streams. }
  LUnZip.Free;
  LInput.Free;
  LOutput.Free;
end;