Sample code for 30+ languages & platforms
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

AutoIt
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)