Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Variant vEntry
    Handle hoEntry
    Boolean iHasMoreEntries
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatZip)) To hoZip
    If (Not(IsComObjectCreated(hoZip))) Begin
        Send CreateComObject of hoZip
    End

    Get ComOpenZip Of hoZip "qa_data/zips/xml_files.zip" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatZipEntry)) To hoEntry
    If (Not(IsComObjectCreated(hoEntry))) Begin
        Send CreateComObject of hoEntry
    End
    Get pvComObject of hoEntry to vEntry
    Get ComEntryAt Of hoZip 0 vEntry To iHasMoreEntries
    While (iHasMoreEntries = True)
        Get ComIsDirectory Of hoEntry To bTemp1
        If (bTemp1 = False) Begin
            Get ComFileName Of hoEntry To sTemp1
            Showln sTemp1
        End
        Else Begin
            Get ComFileName Of hoEntry To sTemp1
            Showln "(directory) " sTemp1
        End

        Get ComGetNext Of hoEntry To iHasMoreEntries
    Loop

    // 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


End_Procedure