Delphi DLL
Delphi DLL
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
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ZipEntry, Zip;
...
procedure TForm1.Button1Click(Sender: TObject);
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);
end;