![]() |
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) Create a ZIP Archive with a Top-Level Directory Using PathPrefix
This example demonstrates how to use the The example recursively adds files from:
And stores them in the ZIP archive beneath:
For example, the local filesystem file:
Will be stored in the ZIP archive as:
This is useful when creating ZIP archives that should extract into a single parent directory rather than directly into the current extraction location.
The example also demonstrates that methods such as
IncludeFile "CkZip.pb" Procedure ChilkatExample() success.i = 0 zip.i = CkZip::ckCreate() If zip.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Initialize the Zip object and set the output filename. ; The .zip file is not created until WriteZip or WriteZipAndClose is called. success = CkZip::ckNewZip(zip,"qa_output/test.zip") If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; Prepend "directory_name/" to each ZIP entry added after this point. ; ; For example, a file found at: ; ; c:/zipTest/directory_name/hello.txt ; ; Will be stored in the ZIP as: ; ; directory_name/hello.txt ; ; This is useful when you want the files to unzip beneath a specific ; top-level directory. CkZip::setCkPathPrefix(zip, "directory_name/") ; Recursively add references to all files beneath: ; ; c:/zipTest/directory_name ; ; AppendFiles does not immediately read or compress the files. ; It adds references to files in the local filesystem. ; The referenced files are read and compressed when WriteZipAndClose is called. recurse.i = 1 success = CkZip::ckAppendFiles(zip,"c:/zipTest/directory_name/*",recurse) If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf ; Write the ZIP archive and close it. success = CkZip::ckWriteZipAndClose(zip) If success = 0 Debug CkZip::ckLastErrorText(zip) CkZip::ckDispose(zip) ProcedureReturn EndIf Debug "Success." CkZip::ckDispose(zip) ProcedureReturn EndProcedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.