PureBasic
PureBasic
Open a Zip Archive
See more Zip Examples
Demonstrates how to open a zip, or an encrypted .zip, or a legacy password-protected .zip.Chilkat PureBasic Downloads
IncludeFile "CkZip.pb"
Procedure ChilkatExample()
success.i = 0
zip.i = CkZip::ckCreate()
If zip.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Open a non-encrypted .zip
success = CkZip::ckOpenZip(zip,"qa_data/zips/sample.zip")
If success <> 1
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
Debug "Num entries = " + Str(CkZip::ckNumEntries(zip))
; ...
; ...
CkZip::ckCloseZip(zip)
; ----------------------------------------------------------------------------
; Open an encrypted zip...
; The two main types of encryption used in ZIP archives are Password-Protected and AES.
;
; ---------------------------------------
; 1. Legacy Password-Protected Zip
;
; This is the older and less secure method of encrypting ZIP archives.
; It provides a basic level of security, but is considered weak by modern standards.
; It is vulnerable to various attacks, including known-plaintext attacks and brute force attacks.
; Although Chilkat allows it, you shouldn't create new zip archives using legacy password-protection.
; ---------------------------------------
; 2. AES Encrypted Zip
;
; AES encryption is a more modern and secure method for encrypting ZIP archives.
; It provides strong encryption based on the AES algorithm, which is widely regarded as secure.
; AES supports different key lengths, typically 128-bit, 192-bit, and 256-bit.
; When opening an encrypted zip, your application only needs to provide the correct password.
; The information about the type of encryption and the key length (if AES) is already embedded within the encrypted .zip.
; Provide the decrypt password because we are opening an existing .zip (decrypting)
CkZip::setCkDecryptPassword(zip, "thePassword")
success = CkZip::ckOpenZip(zip,"qa_data/zips/encryptedSamples/ziptest_256.zip")
If success <> 1
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
Debug "Num entries = " + Str(CkZip::ckNumEntries(zip))
; ...
; ...
CkZip::ckCloseZip(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndProcedure