Sample code for 30+ languages & platforms
DataFlex

Iterate over Matching Filenames

See more Zip Examples

Iterates over files within a .zip that match a pattern. In this case, the pattern is "*.pem". This example will open a .zip containing files of type .txt, .cer, .pem, and possibly others, and will iterate over only the .pem files.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Variant vEntry
    Handle hoEntry
    String sPemStr
    String sPattern
    Boolean iBHasMoreMatches
    String sTemp1

    Move False To iSuccess

    // This example requires 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

    // Open a .zip containing PEM files, among other things..
    Get ComOpenZip Of hoZip "qa_data/certs/thawte-roots.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

    Move "*.pem" To sPattern

    Get pvComObject of hoEntry to vEntry
    Get ComEntryMatching Of hoZip sPattern vEntry To iBHasMoreMatches
    While (iBHasMoreMatches = True)

        Get ComFileName Of hoEntry To sTemp1
        Showln "Entry: " sTemp1

        // Get the uncommpressed contents of the entry:
        Get ComUnzipToString Of hoEntry 0 "utf-8" To sPemStr
        Showln sPemStr

        Get ComGetNextMatch Of hoEntry sPattern To iBHasMoreMatches
    Loop



End_Procedure