Delphi XE 2はSystemを追加した.Zipユニットは、一言でフォルダ全体を圧縮できます

1527 ワード

ユニット内は主にTZipFileクラスで、最も使いやすいのはそのクラス方法です.

TZipFile.ExtractZipFile()       //   Zip         
TZipFile.IsValid()              //             Zip   
TZipFile.ZipDirectoryContents() //            
テスト:

uses System.Zip;

{   C:\Temp\TestDir           C:\Temp\Test.zip }
procedure TForm1.Button1Click(Sender: TObject);
begin
  TZipFile.ZipDirectoryContents('C:\Temp\Test.zip', 'C:\Temp\TestDir\'); //  3        
end;

{   C:\Temp\Test.zip     C:\Temp\TestDir2\ }
procedure TForm1.Button2Click(Sender: TObject);
begin
  TZipFile.ExtractZipFile('C:\Temp\Test.zip', 'C:\Temp\TestDir2\');
end;
クラスをインスタンス化する方法:

uses System.Zip;

{    }
procedure TForm1.Button1Click(Sender: TObject);
var
  zip: TZipFile;
begin
  zip := TZipFile.Create;
  zip.Open('C:\Temp\001.zip', TZipMode.zmWrite); //       001.zip
  zip.Add('C:\Temp\Test.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:\Temp\001.zip', TZipMode.zmRead);
  zip.ExtractAll('C:\Temp\002\');
  zip.Free;
end;