Lazarus Pascal
Lazarus Pascal
Create Empty File and Directory Entries in a ZIP
See more Zip Examples
This example demonstrates how to use the AddEmpty method to create both empty directory entries and empty file entries within a ZIP archive.
The example creates:
- A truly empty directory named
emptyDir - An empty file named
empty.txtlocated beneath thedocssubdirectory
When the ZIP archive is extracted:
emptyDirwill be created as an empty directory.docs/empty.txtwill be created as an empty file under thedocssubdirectory.
It is not necessary to explicitly create the docs directory beforehand. The directory structure implied by the file path is created automatically when extracting.
Chilkat Lazarus Pascal Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Zip;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
zip: TZip;
begin
success := False;
zip := TZip.Create;
success := zip.NewZip('emptyEntries.zip');
if (success = False) then
begin
WriteLn(zip.LastErrorText);
Exit;
end;
// Add an empty directory entry named "emptyDir".
success := zip.AddEmpty(True,'emptyDir');
if (success = False) then
begin
WriteLn(zip.LastErrorText);
Exit;
end;
// Add an empty file entry named "docs/empty.txt".
success := zip.AddEmpty(False,'docs/empty.txt');
if (success = False) then
begin
WriteLn(zip.LastErrorText);
Exit;
end;
// Write the ZIP archive to disk and close it.
success := zip.WriteZipAndClose();
if (success = False) then
begin
WriteLn(zip.LastErrorText);
Exit;
end;
WriteLn('ZIP archive created successfully.');
zip.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.