Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Unzip Some Files by Iterating over EntriesDemonstrates how to unzip specific files by iterating over entries in a .zip.
IncludeFile "CkZipEntry.pb" IncludeFile "CkZip.pb" IncludeFile "CkStringBuilder.pb" Procedure ChilkatExample() ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. zip.i = CkZip::ckCreate() If zip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Open a .zip containing: ; ; a1.xml ; b1.xml ; c1.xml ; dir1/a2.xml ; dir1/c2.xml ; dir2/dir3/c3.xml ; We wish to unzip only a1.xml, b1.xml, and c1.xml success.i = CkZip::ckOpenZip(zip,"qa_data/zips/xml_files.zip") If success <> 1 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf sbFilename.i = CkStringBuilder::ckCreate() If sbFilename.i = 0 Debug "Failed to create object." ProcedureReturn EndIf numEntries.i = CkZip::ckNumEntries(zip) i.i = 0 While i < numEntries entry.i = CkZip::ckGetEntryByIndex(zip,i) entryFilePath.s = CkZipEntry::ckFileName(entry) Debug entryFilePath If CkZipEntry::ckIsDirectory(entry) = 0 CkStringBuilder::ckSetString(sbFilename,entryFilePath) If CkStringBuilder::ckContains(sbFilename,"/",0) = 0 ; Does not contain "/" ; Unzip to the qa_output directory. success = CkZipEntry::ckExtract(entry,"qa_output") If success = 0 Debug "Failed to unzip " + entryFilePath Else Debug "Unzipped " + entryFilePath EndIf EndIf EndIf CkZipEntry::ckDispose(entry) i = i + 1 Wend CkZip::ckDispose(zip) CkStringBuilder::ckDispose(sbFilename) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.