Sample code for 30+ languages & platforms
Lazarus Pascal

Unzip Files in a Date Range

See more Zip Examples

Demonstrates how to use the Zip.MinDate and Zip.MaxDate properties to unzip only those files with a last-modified date within a date range.

Note: This example requires Chilkat v10.0.0 or greater.

Chilkat Lazarus Pascal Downloads

Lazarus Pascal
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;
  numUnzipped: Integer;

begin
  success := False;

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

  zip := TZip.Create;

  success := zip.OpenZip('qa_data/zips/sample.zip');
  if (success <> True) then
    begin
      WriteLn(zip.LastErrorText);
      Exit;
    end;

  //  The MinDate and MaxDate properties use the timestamp date/time string format.
  //  Here are some examples:
  //  YYYY-MM-DD (e.g., 2024-07-31)
  //  YYYY-MM-DDTHH:MM:SS�HH:MM (e.g., 2024-07-31T12:34:56+02:00)
  //  2024-07-31T12:34:56Z (the "Z" denotes Zulu time, or UTC)

  //  Only unzip files having a last-modified date greater than 1-Jan-2017
  zip.MinDate := '2017-01-01T00:00:00Z';

  //  Also, only unzip files having a last-modified date less than the end of 2020
  zip.MaxDate := '2020-12-31T23:59:59Z';

  //  You don't need to specify both MinDate and MaxDate.
  //  You can specify only one or the other if needed.

  //  The MinDate/MaxDate properties apply to all of the Chilkat methods for unzipping.

  numUnzipped := zip.Unzip('c:/temp/unzipDir');
  if (numUnzipped < 0) then
    begin
      WriteLn(zip.LastErrorText);
      Exit;
    end;

  zip.CloseZip();


  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.