![]() |
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
(Tcl) Extract a Single ZIP Entry While Preserving Its Stored PathSee more Zip Examples This example demonstrates how to use the The example first creates a ZIP archive containing a text file. It then re-opens the ZIP, finds the entry, and extracts it to a base directory. The Note: This example requires Chilkat v11.0.0 or greater.
load ./chilkat.dll set success 0 # ------------------------------------------------------------ # First create a sample ZIP archive containing a small text file. set zip [new_CkZip] set success [CkZip_NewZip $zip "c:/temp/sampleText.zip"] if {$success == 0} then { puts [CkZip_lastErrorText $zip] delete_CkZip $zip exit } # Add a small text file from memory. set success [CkZip_AddString $zip "myApp/docs/hello.txt" "Hello from a ZIP entry!" "utf-8"] if {$success == 0} then { puts [CkZip_lastErrorText $zip] delete_CkZip $zip exit } # Write the ZIP archive to disk and close it. set success [CkZip_WriteZipAndClose $zip] if {$success == 0} then { puts [CkZip_lastErrorText $zip] delete_CkZip $zip exit } # ------------------------------------------------------------ # Now open the ZIP archive we just created. set zip2 [new_CkZip] set success [CkZip_OpenZip $zip2 "c:/temp/sampleText.zip"] if {$success == 0} then { puts [CkZip_lastErrorText $zip2] delete_CkZip $zip delete_CkZip $zip2 exit } # Find the entry by its stored ZIP path. set entry [new_CkZipEntry] set success [CkZip_EntryOf $zip2 "myApp/docs/hello.txt" $entry] if {$success == 0} then { puts "Entry not found." delete_CkZip $zip delete_CkZip $zip2 delete_CkZipEntry $entry exit } # Extract this single entry to the base directory: # # c:/temp/extracted # # Because the entry's stored path is: # # myApp/docs/hello.txt # # the file will be extracted to: # # qa_output/extracted/myApp/docs/hello.txt # # The required subdirectories are created automatically. set success [CkZipEntry_Extract $entry "c:/temp/extracted"] if {$success == 0} then { puts [CkZipEntry_lastErrorText $entry] delete_CkZip $zip delete_CkZip $zip2 delete_CkZipEntry $entry exit } CkZip_CloseZip $zip2 puts "Entry extracted successfully." delete_CkZip $zip delete_CkZip $zip2 delete_CkZipEntry $entry |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.