Delphi ActiveX
Delphi ActiveX
Add Files to a ZIP Using AddFile
See more Zip Examples
This example demonstrates how to use the AddFile method to add files from the local filesystem to a ZIP archive.
The example adds two files:
- One file with its relative directory path preserved
- One file stored using only its filename
The AddFile method adds references to local filesystem files. The files are not actually read or compressed until a Write* method is called.
Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
zip: TChilkatZip;
saveExtraPath: Integer;
begin
success := 0;
zip := TChilkatZip.Create(Self);
success := zip.NewZip('addFileExample.zip');
if (success = 0) then
begin
Memo1.Lines.Add(zip.LastErrorText);
Exit;
end;
// Add a file and preserve its relative directory structure
// within the ZIP archive.
//
// The following file:
// c:/projects/app/docs/readme.txt
//
// Will be stored in the ZIP as:
// projects/app/docs/readme.txt
//
saveExtraPath := 1;
success := zip.AddFile('c:/projects/app/docs/readme.txt',saveExtraPath);
if (success = 0) then
begin
Memo1.Lines.Add(zip.LastErrorText);
Exit;
end;
// Add a file using only the filename in the ZIP archive.
//
// The following file:
// c:/temp/logo.png
//
// Will be stored in the ZIP as:
// logo.png
//
saveExtraPath := 0;
success := zip.AddFile('c:/temp/logo.png',saveExtraPath);
if (success = 0) then
begin
Memo1.Lines.Add(zip.LastErrorText);
Exit;
end;
// Write the ZIP archive to disk and close it.
// The source files are consumed at this time.
success := zip.WriteZipAndClose();
if (success = 0) then
begin
Memo1.Lines.Add(zip.LastErrorText);
Exit;
end;
Memo1.Lines.Add('ZIP archive created successfully.');
end;