A short example of how to iterate through a ZIP file's contents using the ZipApi library.
Example 1.1. Listing a zip file's contents
; --------------------------------------------------
; --
; -- examples/example1.bb
; --
; -- A short example of how to iterate through a
; -- ZIP file's contents using the ZipApi library.
; --
; --------------------------------------------------
; Include required libraries
Include "../Blitz_Basic_Bank.bb"
Include "../Blitz_File_FileName.bb"
Include "../../../Blitz_File_ZipApi.bb"
; Open the zip file
Local zipIn = ZipApi_Open("test-file.zip")
; Check the zip file was valid
If zipIn = 0 Then
; Not a valid ZIP file - display error and exit program
Print "There was an error whilst trying to open the zip file."
End
EndIf
; Set file pointer to first file
ZipApi_GotoFirstFile(zipIn)
; Print a fancy header
Print LSet("FileName", 30) + RSet("Packed Size", 14) + RSet("Normal Size", 14) + RSet("Ratio", 10)
; Begin iterating through files
Repeat
; Get the current file's information
Local fileInfo.ZIPAPI_UnzFileInfo = ZipApi_GetCurrentFileInfo(zipIn)
; Generate fancy file data, containing file name, size and compression ratio
Local fileData$ = ""
Local compressionRatio# = Float((fileInfo\CompressedSize) / Float(fileInfo\UnCompressedSize)) * 100.0
fileData$ = LSet(fileInfo\FileName, 30)
fileData = fileData + RSet(fileInfo\CompressedSize, 14)
fileData = fileData + RSet(fileInfo\UnCompressedSize, 14)
fileData = fileData + RSet(compressionRatio + "%", 10)
; Cleanup & output
ZIPAPI_UnzFileInfo_Dispose(fileInfo)
Print fileData
Until ZipApi_GotoNextFile(zipIn) = ZIPAPI_END_OF_LIST_OF_FILE
; Close & Cleanup
ZipApi_Close(zipIn)