Sample code for 30+ languages & platforms
PureBasic

List Files in Zip using EntryAt / GetNext

See more Zip Examples

Demonstrates how to iterate over the files and directories in a zip archive using EntryAt/GetNext.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkZip.pb"
IncludeFile "CkZipEntry.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    zip.i = CkZip::ckCreate()
    If zip.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkZip::ckOpenZip(zip,"qa_data/zips/xml_files.zip")
    If success = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    entry.i = CkZipEntry::ckCreate()
    If entry.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    hasMoreEntries.i = CkZip::ckEntryAt(zip,0,entry)
    While (hasMoreEntries = 1)
        If CkZipEntry::ckIsDirectory(entry) = 0
            Debug CkZipEntry::ckFileName(entry)
        Else
            Debug "(directory) " + CkZipEntry::ckFileName(entry)
        EndIf

        hasMoreEntries = CkZipEntry::ckGetNext(entry)
    Wend

    ; Sample output showing both file and directory entries:

    ; a1.xml
    ; b1.xml
    ; c1.xml
    ; (directory) dir1/
    ; dir1/a2.xml
    ; dir1/c2.xml
    ; (directory) dir2/
    ; (directory) dir2/dir3/
    ; dir2/dir3/c3.xml


    CkZip::ckDispose(zip)
    CkZipEntry::ckDispose(entry)


    ProcedureReturn
EndProcedure