Sample code for 30+ languages & platforms
Delphi ActiveX Requires Chilkat v11.0.0+

Modify Name of File Stored within Zip when Creating a .zip

See more Zip Examples

Demonstrates how to create a zip where the filename within the .zip is different than the filename that was added from the filesystem.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
var
success: Integer;
zip: TChilkatZip;
saveExtraPath: Integer;
entry: TChilkatZipEntry;

begin
success := 0;

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

zip := TChilkatZip.Create(Self);

//  Intialize the zip object by calling NewZip.
success := zip.NewZip('myZip.zip');

//  Add a reference to a file on disk to the zip object.
//  (When appending files to a zip, the files are not actually
//  read into memory.  References to the file(s) are added.
//  When WriteZip is called, the referenced files are streamed in
//  and compressed to the .zip.)
saveExtraPath := 0;
success := zip.AddFile('/temp/a/hamlet.xml',saveExtraPath);
if (success = 0) then
  begin
    Memo1.Lines.Add(zip.LastErrorText);
    Exit;
  end;

//  The zip object references a single file.
//  Retrieve the entry object...
entry := TChilkatZipEntry.Create(Self);
zip.EntryAt(0,entry.ControlInterface);

//  Set the entry's filename to anything you want:
entry.FileName := 'somethingElse.xml';

//  Note: Internally, the zip component retains the name of
//  the file referenced.  The current setting of the zip entry's
//  FileName property is stored in the .zip when writing.

//  The zip written here will contain somethingElse.xml
success := zip.WriteZipAndClose();
if (success <> 1) then
  begin
    Memo1.Lines.Add(zip.LastErrorText);
  end
else
  begin
    Memo1.Lines.Add('Zip created!');
  end;