![]() |
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
(PureBasic) Iterate Through ZIP Entries Using EntryAt and ZipEntry.GetNextSee more Zip ExamplesThis example demonstrates how to iterate through all entries in a ZIP archive using:
The example prints each ZIP entry's stored filename and whether the entry is a file or directory. This approach is useful when sequentially processing ZIP entries without repeatedly calling Suppose the ZIP archive contains: The example iterates through each entry in the order stored within the ZIP archive.
IncludeFile "CkZip.pb" IncludeFile "CkZipEntry.pb" Procedure ChilkatExample() success.i = 0 zip.i = CkZip::ckCreate() If zip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Open an existing ZIP archive. success = CkZip::ckOpenZip(zip,"c:/temp/example.zip") If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; A ZIP archive may contain zero entries. If CkZip::ckNumEntries(zip) = 0 Debug "The ZIP archive is empty." CkZip::ckCloseZip(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; ------------------------------------------------------------ ; Get the first ZIP entry. ; ; EntryAt(0,entry) initializes the ZipEntry object so that ; it represents the first entry in the ZIP archive. ; entry.i = CkZipEntry::ckCreate() If entry.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkZip::ckEntryAt(zip,0,entry) If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) ProcedureReturn EndIf ; ------------------------------------------------------------ ; Iterate through all ZIP entries. ; ; GetNext updates the same ZipEntry object so that it ; represents the next entry in the ZIP archive. ; While (success = 1) If CkZipEntry::ckIsDirectory(entry) = 1 Debug "[Directory] " + CkZipEntry::ckFileName(entry) Else Debug "[File] " + CkZipEntry::ckFileName(entry) EndIf ; Advance to the next entry. success = CkZipEntry::ckGetNext(entry) Wend CkZip::ckCloseZip(zip) Debug "Done." CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) ProcedureReturn EndProcedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.