有人用unit sevenzip; 来解压缩文件吗?procedure TFormMain.btnCompressClick(Sender: TObject);
var
  Arch: I7zOutArchive;
  Counter: Integer;
begin
  if OpenDialog.Files.Count = 0 then
  begin
    ShowMessage('请添加文件');
    Exit;
  end;
  memoOutput.Lines.Append('开始压缩');
  Arch := CreateOutArchive(CLSID_CFormat7z);//这里用7Z格式,没有问题,但是换成CLSID_CFormatZIP格式。只
能操作一个文件,如果同时添加多个文件,在调用   Arch.SaveToFile('.\test.zip')时候就人卡死。
  Arch.SetProgressCallback(nil, ProgressCallback);
  Arch.SetPassword('123456');
  for Counter := 0 to OpenDialog.Files.Count - 1 do
    Arch.AddFile(OpenDialog.Files[Counter],
      ExtractFileName(OpenDialog.Files[Counter]));
  SetCompressionLevel(Arch, 5);
  SetCompressionMethod(Arch, m7Deflate64);
  Arch.SaveToFile('.\test.ZIP');
  memoOutput.Lines.Append('完成压缩');
  Arch := nil;
end;

解决方案 »

  1.   

    Delphi XE2+中自带TZipFile类,而且是原生实现,不依赖外部DLL。
      

  2.   

    D7中,Zipb单位,可以简单操作ZIP。
    第三方管件VclZip,功能编辑部强大。
      

  3.   

    报谦,字打错了。D7中,Zipb单元,可以简单操作ZIP。
    第三方控件VclZip,功能比较强大。
      

  4.   

    没有用过,建议ZIP格式的加密算法是否可以换一个,SDK中对于ZIP的加密是不是有特殊说明?
    SetCompressionMethod(Arch, m7Deflate64);------ZIP中是否支持64的加密算法?