PureBasic
PureBasic
Append Dir Tree to Existing Zip w/out Rewriting Entire Zip
See more Zip Examples
Demonstrates how to use the QuickAppend method to append a directory tree to an existing .zip archive. This method works by editing the existing .zip -- it does not rewrite or recompress the contents of the existing .zip. It is the fastest way to append additional files to a pre-existing large .zip archive.Chilkat PureBasic Downloads
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
; The NewZip method only initializes the Zip object -- it does
; not create or write a .zip file.
success = CkZip::ckNewZip(zip,"notUsed.zip")
If success = 0
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
; Add a references to all files in a directory tree.
; Note: this does not read or compress the file contents --
; it simply adds file references to the zip object.
recurse.i = 1
success = CkZip::ckAppendFiles(zip,"c:/temp/abc123/*",recurse)
If success = 0
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
; Appends the contents of the zip object to the preExisting.zip
; zip archive. preExisting.zip is opened, and the files
; referenced by this zip object are streamed in, compressed,
; and appended to the end of the archive.
success = CkZip::ckQuickAppend(zip,"preExisting.zip")
If success = 0
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
Debug "Success!"
; Note: Additional files, directory trees, or in-memory data
; can be appended by calling AddFile, AppendFiles,
; AddString, AddBd, AddSb, etc. multiple times.
; Whatever files and/or in-memory data that are referenced by
; this zip object will be appended to preExisting.zip when
; QuickAppend is called
CkZip::ckDispose(zip)
ProcedureReturn
EndProcedure