Sample code for 30+ languages & platforms
DataFlex

Unzip all Files to a Single Directory (Ignoring Subdirectories in Zip)

See more Zip Examples

Demonstrates how to unzip all files into a single directory, ignoring the internal directory structure of the files in the .zip.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    String sOutDir
    Handle hoFac
    Handle hoZip
    Integer iNumUnzipped
    String sTemp1

    Move False To iSuccess

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

    Move "c:/temp/testUnzipDir" To sOutDir

    // Make sure our output directory exists.
    Get Create (RefClass(cComCkFileAccess)) To hoFac
    If (Not(IsComObjectCreated(hoFac))) Begin
        Send CreateComObject of hoFac
    End
    Get ComDirEnsureExists Of hoFac sOutDir To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoFac To sTemp1
        Showln sTemp1
        Procedure_Return
    End

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

    // In this example, the xml_files.zip contains some files in the subdirectories "dir1" and also "dir2/dir3".

    // a1.xml
    // b1.xml
    // c1.xml
    // dir1/a2.xml
    // dir1/c2.xml
    // dir2/dir3/c3.xml

    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

    // Unzip all files into the directory c:/temp/testUnzipDir
    Get ComUnzipInto Of hoZip sOutDir To iNumUnzipped
    If (iNumUnzipped < 0) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Num unzipped = " iNumUnzipped

    // After unzipping via UnzipInto, we have this:

    // c:\temp\testUnzipDir\a1.xml
    // c:\temp\testUnzipDir\b1.xml
    // c:\temp\testUnzipDir\c1.xml
    // c:\temp\testUnzipDir\a2.xml
    // c:\temp\testUnzipDir\c2.xml
    // c:\temp\testUnzipDir\c3.xml

    Send ComCloseZip To hoZip

    Showln "Success."


End_Procedure