Sample code for 30+ languages & platforms
PureBasic

Another Path-in-Zip Example

See more Zip Examples

Another example about getting the correct paths within a .zip.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkZip.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; Intialize the zip object by calling NewZip.
    success = CkZip::ckNewZip(zip,"myZip.zip")

    ; Add references to files:
    recurse.i = 1
    success = CkZip::ckAppendFiles(zip,"c:\temp\a\subdir1\*",recurse)

    ; Assuming that the file c:\temp\a\subdir1\dude.gif exists,
    ; the .zip will contain "dude.gif" without any path information.

    ; The component has no
    ; choice but to use "c:\\temp\\a\\subdir1" as the root.
    ; It's not possible for the component to know if you
    ; wanted subdir1\ or a\subdir1\ or temp\a\subdir1
    ; paths prefixed for each file added.

    ; To control the path within the zip, set the AppendFromDir
    ; directory and then use a relative path in AppendFiles.
    ; For example:
    CkZip::setCkAppendFromDir(zip, "c:\temp\a")

    success = CkZip::ckAppendFiles(zip,"subdir1\*",recurse)

    ; This causes c:\temp\a\subdir1\dude.gif to be added as
    ; "subdir1\dude.gif" within the .zip.

    ; If you need the path within the .zip to be "a\subdir", then
    ; do this:
    CkZip::setCkAppendFromDir(zip, "c:\temp")
    success = CkZip::ckAppendFiles(zip,"a\subdir1\*",recurse)

    success = CkZip::ckWriteZipAndClose(zip)


    CkZip::ckDispose(zip)


    ProcedureReturn
EndProcedure