Sample code for 30+ languages & platforms
PureBasic

Example for the Zip AppendNew Function

See more Zip Examples

Demonstrates the Zip AppendNew function.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkZip.pb"
IncludeFile "CkZipEntry.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    zipPath.s = "c:/temp/qa_output/test.zip"

    ; Initialize the zip object, which also sets the FileName property to the path of the zip to be created.
    CkZip::ckNewZip(zip,zipPath)

    ; Append a new and empty file to the zip object.
    ; This does not write the zip file.  It simply adds an entry
    ; that will get processed when the zip is written.
    CkZip::ckAddEmpty(zip,0,"empty.txt")

    ; Append another entry..
    pathInZip.s = "abc/helloWorld.txt"
    CkZip::ckAddEmpty(zip,0,pathInZip)

    ; Add some data to this entry..
    entry.i = CkZipEntry::ckCreate()
    If entry.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkZip::ckEntryOf(zip,pathInZip,entry)
    CkZipEntry::ckAppendString(entry,"Hello World","utf-8")

    ; Write the zip, which contains 2 files:  empty.txt and helloWorld.txt
    CkZip::setCkFileName(zip, zipPath)
    success = CkZip::ckWriteZipAndClose(zip)
    If success = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkZipEntry::ckDispose(entry)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkZip::ckDispose(zip)
    CkZipEntry::ckDispose(entry)


    ProcedureReturn
EndProcedure