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
(Tcl) Unzip Some Files by Iterating over EntriesDemonstrates how to unzip specific files by iterating over entries in a .zip.
load ./chilkat.dll # This requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set zip [new_CkZip] # 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 set success [CkZip_OpenZip $zip "qa_data/zips/xml_files.zip"] if {$success != 1} then { puts [CkZip_lastErrorText $zip] delete_CkZip $zip exit } set sbFilename [new_CkStringBuilder] set numEntries [CkZip_get_NumEntries $zip] set i 0 while {$i < $numEntries} { # entry is a CkZipEntry set entry [CkZip_GetEntryByIndex $zip $i] set entryFilePath [CkZipEntry_fileName $entry] puts "$entryFilePath" if {[CkZipEntry_get_IsDirectory $entry] == 0} then { CkStringBuilder_SetString $sbFilename $entryFilePath if {[CkStringBuilder_Contains $sbFilename "/" 0] == 0} then { # Does not contain "/" # Unzip to the qa_output directory. set success [CkZipEntry_Extract $entry "qa_output"] if {$success == 0} then { puts "Failed to unzip $entryFilePath" } else { puts "Unzipped $entryFilePath" } } } delete_CkZipEntry $entry set i [expr $i + 1] } delete_CkZip $zip delete_CkStringBuilder $sbFilename |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.