Sample code for 30+ languages & platforms
AutoIt Requires Chilkat v11.0.0+

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)