![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Iterate Through Matching ZIP Entries Using EntryMatching and ZipEntry.GetNextMatchSee more Zip ExamplesThis example demonstrates how to iterate through ZIP entries matching a wildcard pattern using:
The wildcard character The example searches for all entries beneath the Suppose the ZIP archive contains: The wildcard pattern: Matches: Note that ZIP archives may optionally contain separate directory entries. Therefore, the first matching entry may be the directory entry
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; entry: HCkZipEntry; begin success := False; zip := CkZip_Create(); // Open an existing ZIP archive. success := CkZip_OpenZip(zip,'c:/temp/sample.zip'); if (success = False) then begin Memo1.Lines.Add(CkZip__lastErrorText(zip)); Exit; end; // ------------------------------------------------------------ // Find the first ZIP entry matching the wildcard pattern: // // docs/* // // Matching is performed against the full stored ZIP path. // entry := CkZipEntry_Create(); success := CkZip_EntryMatching(zip,'docs/*',entry); if (success = False) then begin Memo1.Lines.Add('No matching entries found.'); CkZip_CloseZip(zip); Exit; end; // ------------------------------------------------------------ // Iterate through all matching entries. // // GetNextMatch updates the same ZipEntry object so that // it represents the next matching entry. // while (success = True) do begin if (CkZipEntry_getIsDirectory(entry) = True) then begin Memo1.Lines.Add('[Directory] ' + CkZipEntry__fileName(entry)); end else begin Memo1.Lines.Add('[File] ' + CkZipEntry__fileName(entry)); end; // Advance to the next matching entry. success := CkZipEntry_GetNextMatch(entry,'docs/*'); end; CkZip_CloseZip(zip); Memo1.Lines.Add('Done.'); CkZip_Dispose(zip); CkZipEntry_Dispose(entry); end; |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.