Sample code for 30+ languages & platforms
PowerBuilder

Zip -- Exclude Files Based on Wildcard Matching

See more Zip Examples

Demonstrates how to use the SetExclusions method to exclude matching files from being added to a .zip.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Zip
oleobject loo_SaExcludes
long li_Recurse

li_Success = 0

loo_Zip = create oleobject
li_rc = loo_Zip.ConnectToNewObject("Chilkat.Zip")
if li_rc < 0 then
    destroy loo_Zip
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_Zip.NewZip("qa_output/x.zip")

//  Let's add files from the directory tree rooted at C:\AAWorkarea\ChilkatSampleProjects

//  However.. we want to exclude all files ending in ".cache" or ".pdb" regardless of the sub-directory.
//  Also exclude all files under any "obj" directory,
//  and we also want to exclude any .exe found under a "win10-x64" directory.

loo_SaExcludes = create oleobject
li_rc = loo_SaExcludes.ConnectToNewObject("Chilkat.StringArray")

loo_SaExcludes.Append("*.cache")
loo_SaExcludes.Append("*.pdb")
loo_SaExcludes.Append("*/obj/*")
loo_SaExcludes.Append("*/win10-x64/*.exe")
loo_Zip.SetExclusions(loo_SaExcludes)

//  Append promises of paths and files to be zipped.
li_Recurse = 1
li_Success = loo_Zip.AppendFiles("c:/AAWorkArea/ChilkatSampleProjects/*",li_Recurse)
if li_Success = 0 then
    Write-Debug loo_Zip.LastErrorText
    destroy loo_Zip
    destroy loo_SaExcludes
    return
end if

//  Create the zip from the file and directory promises added previously.
li_Success = loo_Zip.WriteZipAndClose()
if li_Success = 0 then
    Write-Debug loo_Zip.LastErrorText
    destroy loo_Zip
    destroy loo_SaExcludes
    return
end if

Write-Debug "Success."


destroy loo_Zip
destroy loo_SaExcludes