Sample code for 30+ languages & platforms
PureBasic

GZip Create / Extract .gz File

See more Gzip Examples

Demonstrates how to compress a file to create a .gz (GZip) file.

Note: The .gz file format is a compressed file format. It contains a single file. The .gz file format is not an archive format (i.e. it does not contain a collection of files/directories such as with the .zip, .rar, or .tar file formats). GZip is often combined with TAR to create a .tgz (or .tar.gz).

Note: It is possible for a .gz to contain more than one file, but this is very uncommon.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkGzip.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; File-to-file GZip:
    ; Compress "hamlet.xml" to create "hamlet.xml.gz"
    success = CkGzip::ckCompressFile(gzip,"hamlet.xml","hamlet.xml.gz")
    If success = 0
        Debug CkGzip::ckLastErrorText(gzip)
        CkGzip::ckDispose(gzip)
        ProcedureReturn
    EndIf

    ; File-to-file ungzip
    ; Decompress "hamlet.xml.gz" to create "hamletOut.xml"
    success = CkGzip::ckUncompressFile(gzip,"hamlet.xml.gz","hamletOut.xml")
    If success = 0
        Debug CkGzip::ckLastErrorText(gzip)
        CkGzip::ckDispose(gzip)
        ProcedureReturn
    EndIf

    ; File-to-string ungzip
    ; Decompress the contents of a .gz directly to a string variable:
    ; The 2nd argument indicates the charset of the character
    ; data after it is decompressed.
    xmlStr.s
    xmlStr = CkGzip::ckUncompressFileToString(gzip,"hamlet.xml.gz","utf-8")
    If success = 0
        Debug CkGzip::ckLastErrorText(gzip)
        CkGzip::ckDispose(gzip)
        ProcedureReturn
    EndIf

    Debug xmlStr

    ; The Chilkat GZip API provides much more flexibility than shown
    ; here.  See the reference documentation at 
    ; http://www.chilkatsoft.com/refdoc for more information


    CkGzip::ckDispose(gzip)


    ProcedureReturn
EndProcedure