![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Unzip a ZIP Entry Directly into a BinData Object Using ZipEntry.UnzipToBdSee more Zip Examples This example demonstrates how to use the The entry contents are uncompressed entirely in memory without creating a file on disk. This is useful when:
The example opens a ZIP archive, locates a PDF entry, inflates it into a Suppose the ZIP archive contains: The entry is uncompressed directly into memory before optionally being saved to:
IncludeFile "CkZipEntry.pb" IncludeFile "CkZip.pb" IncludeFile "CkBinData.pb" Procedure ChilkatExample() success.i = 0 zip.i = CkZip::ckCreate() If zip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Open an existing ZIP archive. success = CkZip::ckOpenZip(zip,"qa_data/zips/documents.zip") If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; Locate the PDF entry within the ZIP archive. entry.i = CkZipEntry::ckCreate() If entry.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkZip::ckEntryOf(zip,"docs/report.pdf",entry) If success = 0 Debug "ZIP entry not found." CkZip::ckCloseZip(zip) CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) ProcedureReturn EndIf ; ------------------------------------------------------------ ; Inflate the ZIP entry directly into a BinData object. ; ; The uncompressed bytes are stored entirely in memory. ; pdfData.i = CkBinData::ckCreate() If pdfData.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkZipEntry::ckUnzipToBd(entry,pdfData) If success = 0 Debug CkZipEntry::ckLastErrorText(entry) CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) CkBinData::ckDispose(pdfData) ProcedureReturn EndIf Debug "Uncompressed size = " + Str(CkBinData::ckNumBytes(pdfData)) Debug "" ; ------------------------------------------------------------ ; Optionally save the uncompressed bytes to a file. ; success = CkBinData::ckWriteFile(pdfData,"qa_output/report.pdf") If success = 0 Debug CkBinData::ckLastErrorText(pdfData) CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) CkBinData::ckDispose(pdfData) ProcedureReturn EndIf CkZip::ckCloseZip(zip) Debug "PDF extracted successfully." CkZip::ckDispose(zip) CkZipEntry::ckDispose(entry) CkBinData::ckDispose(pdfData) ProcedureReturn EndProcedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.