Sample code for 30+ languages & platforms
DataFlex

Extract a .tar.gz Archive to a Directory

See more Gzip Examples

This example demonstrates how to use the UnTarGz method to extract a .tar.gz archive to a specified directory.

The method performs both the Gzip decompression and TAR extraction in a single step. It operates in streaming mode, meaning it does not create temporary files and uses a constant, minimal amount of memory regardless of archive size.

The bNoAbsolute parameter is set to _TRUE_ in this example to prevent extraction of files with absolute paths. This is a safety measure that helps avoid overwriting files in unintended locations (such as system directories).

This method is ideal for efficiently extracting large .tar.gz archives while maintaining security and low memory usage.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoGzip
    String sTgzPath
    String sDestDir
    Boolean iNoAbsolute
    String sTemp1

    Move False To iSuccess

    // This example demonstrates how to extract a .tar.gz archive to a directory.

    Get Create (RefClass(cComChilkatGzip)) To hoGzip
    If (Not(IsComObjectCreated(hoGzip))) Begin
        Send CreateComObject of hoGzip
    End

    // The .tar.gz file to be extracted:
    Move "c:/temp/archive.tar.gz" To sTgzPath

    // The destination directory:
    Move "c:/temp/outputDir" To sDestDir

    // Set to True to prevent extraction of files with absolute paths:
    Move True To iNoAbsolute

    // Extract the archive:
    Get ComUnTarGz Of hoGzip sTgzPath sDestDir iNoAbsolute To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoGzip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Archive successfully extracted to: " sDestDir


End_Procedure