Tcl
Tcl
Unzip all Files to a Single Directory (Ignoring Subdirectories in Zip)
See more Zip Examples
Demonstrates how to unzip all files into a single directory, ignoring the internal directory structure of the files in the .zip.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set outDir "c:/temp/testUnzipDir"
# Make sure our output directory exists.
set fac [new_CkFileAccess]
set success [CkFileAccess_DirEnsureExists $fac $outDir]
if {$success == 0} then {
puts [CkFileAccess_lastErrorText $fac]
delete_CkFileAccess $fac
exit
}
set zip [new_CkZip]
# In this example, the xml_files.zip contains some files in the subdirectories "dir1" and also "dir2/dir3".
# a1.xml
# b1.xml
# c1.xml
# dir1/a2.xml
# dir1/c2.xml
# dir2/dir3/c3.xml
set success [CkZip_OpenZip $zip "qa_data/zips/xml_files.zip"]
if {$success == 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkFileAccess $fac
delete_CkZip $zip
exit
}
# Unzip all files into the directory c:/temp/testUnzipDir
set numUnzipped [CkZip_UnzipInto $zip $outDir]
if {$numUnzipped < 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkFileAccess $fac
delete_CkZip $zip
exit
}
puts "Num unzipped = $numUnzipped"
# After unzipping via UnzipInto, we have this:
# c:\temp\testUnzipDir\a1.xml
# c:\temp\testUnzipDir\b1.xml
# c:\temp\testUnzipDir\c1.xml
# c:\temp\testUnzipDir\a2.xml
# c:\temp\testUnzipDir\c2.xml
# c:\temp\testUnzipDir\c3.xml
CkZip_CloseZip $zip
puts "Success."
delete_CkFileAccess $fac
delete_CkZip $zip