Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Create Zip in a BinData ObjectRecursively appends files in a directory tree and writes a zip archive into a Chilkat BinData object.
#include <CkZip.h> #include <CkBinData.h> void ChilkatSample(void) { CkString strOut; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkZip zip; // Initialize the zip object. Because we will never actually write a zip file to the filesystem, // the filepath passed to NewZip does not matter. bool success = zip.NewZip("x.zip"); if (success != true) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // 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). bool recurse = true; success = zip.AppendFiles("c:/temp/a/*",recurse); if (success != true) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Write the zip archive into the bdZip object. CkBinData bdZip; success = zip.WriteBd(bdZip); if (success != true) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // We could directly access the bytes of the zip archive, or perhaps // get the zip bytes in base64 format. const char *zipAsBase64 = bdZip.getEncoded("base64"); strOut.append(zipAsBase64); strOut.append("\r\n"); // Or the zip can be used by some other Chilkat method call that accepts // a BinData object as an argument. SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.