Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Create Zip in a BinData ObjectRecursively appends files in a directory tree and writes a zip archive into a Chilkat BinData object.
IncludeFile "CkZip.pb" IncludeFile "CkBinData.pb" Procedure ChilkatExample() ; 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 ; Initialize the zip object. Because we will never actually write a zip file to the filesystem, ; the filepath passed to NewZip does not matter. success.i = CkZip::ckNewZip(zip,"x.zip") If success <> 1 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; Append a directory tree. The call to AppendFiles does ; not read the file contents or append them to the zip ; object in memory. It simply appends references ; to the files so that when WriteBd, WriteZip, or WriteZipAndClose ; is called, the referenced files are streamed and compressed ; into the .zip output file (or BinData object). recurse.i = 1 success = CkZip::ckAppendFiles(zip,"c:/temp/a/*",recurse) If success <> 1 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; Write the zip archive into the bdZip object. bdZip.i = CkBinData::ckCreate() If bdZip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkZip::ckWriteBd(zip,bdZip) If success <> 1 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) CkBinData::ckDispose(bdZip) ProcedureReturn EndIf ; We could directly access the bytes of the zip archive, or perhaps ; get the zip bytes in base64 format. zipAsBase64.s = CkBinData::ckGetEncoded(bdZip,"base64") Debug zipAsBase64 ; Or the zip can be used by some other Chilkat method call that accepts ; a BinData object as an argument. CkZip::ckDispose(zip) CkBinData::ckDispose(bdZip) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.