PowerBuilder
PowerBuilder
Append Files to an Existing ZIP Archive Using QuickAppend
See more Zip Examples
Demonstrates how to use the QuickAppend method to append
additional files to an existing ZIP archive.
Unlike methods that rewrite the entire ZIP archive,
QuickAppend modifies the existing ZIP in-place by
appending new entries directly to the end of the archive.
Existing ZIP entries are not recompressed or rewritten, making
QuickAppend the fastest and most efficient way to add
files to a large pre-existing ZIP archive.
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Zip
integer li_SaveExtraPath
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
// ------------------------------------------------------------
// Initialize a new Zip object.
//
// NewZip resets the Zip object to a new and empty state.
// It does NOT immediately create or write a .zip file.
//
// The filename passed to NewZip is not used by QuickAppend,
// but NewZip is still useful because it initializes the
// Zip object to an empty state.
li_Success = loo_Zip.NewZip("notUsed.zip")
if li_Success = 0 then
Write-Debug loo_Zip.LastErrorText
destroy loo_Zip
return
end if
// ------------------------------------------------------------
// Add a reference to a local filesystem file.
//
// AddFile does NOT immediately read or compress the file.
// Instead, it adds a reference to the file that will later
// be processed when QuickAppend is called.
//
// The file being referenced is:
//
// c:/temp/files/something.dat
//
li_SaveExtraPath = 0
li_Success = loo_Zip.AddFile("c:/temp/files/something.dat",li_SaveExtraPath)
if li_Success = 0 then
Write-Debug loo_Zip.LastErrorText
destroy loo_Zip
return
end if
// Because saveExtraPath = 0,
// the file will be stored in the ZIP as:
//
// something.dat
//
// ------------------------------------------------------------
// Append the referenced files to an existing ZIP archive.
//
// QuickAppend opens the existing ZIP archive:
//
// c:/temp/zips/preExisting.zip
//
// The referenced files are then:
//
// * Read from the local filesystem
// * Compressed as needed
// * Appended to the existing ZIP archive
//
li_Success = loo_Zip.QuickAppend("c:/temp/zips/preExisting.zip")
if li_Success = 0 then
Write-Debug loo_Zip.LastErrorText
destroy loo_Zip
return
end if
Write-Debug "Files appended successfully."
Write-Debug ""
// ------------------------------------------------------------
// Additional files, directory trees, or in-memory data
// can be added before calling QuickAppend.
//
// For example:
//
// AddFile
// AppendFiles
// AppendFilesEx
// AddString
// AddBd
// AddSb
//
// Whatever entries are currently referenced by the Zip object
// are appended to the existing ZIP archive when QuickAppend
// is called
destroy loo_Zip