Sample code for 30+ languages & platforms
Delphi DLL 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 DLL Downloads

Delphi DLL
var
success: Boolean;
zip: HCkZip;
saveExtraPath: Boolean;
entry: HCkZipEntry;

begin
success := False;

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

zip := CkZip_Create();

//  Intialize the zip object by calling NewZip.
success := CkZip_NewZip(zip,'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 := False;
success := CkZip_AddFile(zip,'/temp/a/hamlet.xml',saveExtraPath);
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

//  The zip object references a single file.
//  Retrieve the entry object...
entry := CkZipEntry_Create();
CkZip_EntryAt(zip,0,entry);

//  Set the entry's filename to anything you want:
CkZipEntry_putFileName(entry,'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 := CkZip_WriteZipAndClose(zip);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
  end
else
  begin
    Memo1.Lines.Add('Zip created!');
  end;

CkZip_Dispose(zip);
CkZipEntry_Dispose(entry);