AutoIt
AutoIt
Extract a Single ZIP Entry While Preserving Its Stored Path
See more Zip Examples
This example demonstrates how to use the ZipEntry.Extract method to extract a single entry from a ZIP archive.
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 Extract method uses the relative path stored within the ZIP entry. Any required subdirectories are created automatically beneath the specified base directory.
Chilkat AutoIt Downloads
Local $bSuccess = False
; ------------------------------------------------------------
; First create a sample ZIP archive containing a small text file.
$oZip = ObjCreate("Chilkat.Zip")
$bSuccess = $oZip.NewZip("c:/temp/sampleText.zip")
If ($bSuccess = False) Then
ConsoleWrite($oZip.LastErrorText & @CRLF)
Exit
EndIf
; Add a small text file from memory.
$bSuccess = $oZip.AddString("myApp/docs/hello.txt","Hello from a ZIP entry!","utf-8")
If ($bSuccess = False) Then
ConsoleWrite($oZip.LastErrorText & @CRLF)
Exit
EndIf
; Write the ZIP archive to disk and close it.
$bSuccess = $oZip.WriteZipAndClose()
If ($bSuccess = False) Then
ConsoleWrite($oZip.LastErrorText & @CRLF)
Exit
EndIf
; ------------------------------------------------------------
; Now open the ZIP archive we just created.
$oZip2 = ObjCreate("Chilkat.Zip")
$bSuccess = $oZip2.OpenZip("c:/temp/sampleText.zip")
If ($bSuccess = False) Then
ConsoleWrite($oZip2.LastErrorText & @CRLF)
Exit
EndIf
; Find the entry by its stored ZIP path.
$oEntry = ObjCreate("Chilkat.ZipEntry")
$bSuccess = $oZip2.EntryOf("myApp/docs/hello.txt",$oEntry)
If ($bSuccess = False) Then
ConsoleWrite("Entry not found." & @CRLF)
Exit
EndIf
; 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.
$bSuccess = $oEntry.Extract("c:/temp/extracted")
If ($bSuccess = False) Then
ConsoleWrite($oEntry.LastErrorText & @CRLF)
Exit
EndIf
$oZip2.CloseZip
ConsoleWrite("Entry extracted successfully." & @CRLF)