Delphi XE2 新增 System.Zip 单元,压缩和解压缩文件

Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了

单元内主要就是 TZipFile 类, 最方便使用的是它的类方法:

TZipFile.ExtractZipFile()       //解压 Zip 文件到指定文件夹
TZipFile.IsValid()              //判断指定文件是否是有效的 Zip 文件
TZipFile.ZipDirectoryContents() //压缩指定路径下的所有文件

测试:

uses System.Zip;

{ 把 C:TempTestDir 下的所有文件压缩到 C:TempTest.zip }
procedure TForm1.Button1Click(Sender: TObject);
begin
  TZipFile.ZipDirectoryContents('C:TempTest.zip', 'C:TempTestDir'); //参数3可以指定压缩算法
end;

{ 把 C:TempTest.zip 解压到 C:TempTestDir2 }
procedure TForm1.Button2Click(Sender: TObject);
begin
  TZipFile.ExtractZipFile('C:TempTest.zip', 'C:TempTestDir2');
end;

使用实例化类的方式:

uses System.Zip;

{ 压缩 }
procedure TForm1.Button1Click(Sender: TObject);
var
  zip: TZipFile;
begin
  zip := TZipFile.Create;
  zip.Open('C:Temp01.zip', TZipMode.zmWrite); //准备要压缩为 001.zip
  zip.Add('C:TempTest.txt', 'Test.txt');       //参1是要压缩的文件; 参2是要使用的文件名; 参数3可指定压缩算法
//  zip.Add...
//  zip.Close; //Close 时才执行实际压缩过程; 不过在销毁前会调用它
  zip.Free;
end;

{ 解压 }
procedure TForm1.Button2Click(Sender: TObject);
var
  zip: TZipFile;
begin
  zip := TZipFile.Create;
  zip.Open('C:Temp01.zip', TZipMode.zmRead);
  zip.ExtractAll('C:Temp02');
  zip.Free;
end;

原创地址:

http://www.cnblogs.com/del/archive/2011/10/09/2204838.html

原文地址:https://www.cnblogs.com/sunylat/p/6119121.html