![]() |
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
(C) Remove an Entry from an Existing ZIP Using DeleteEntry
This example demonstrates how to use the The example:
Suppose the original ZIP archive contains:
After deleting
The entry is removed only from the in-memory ZIP object until a
Note: This example requires Chilkat v11.0.0 or greater.
#include <C_CkZip.h> #include <C_CkZipEntry.h> void ChilkatSample(void) { BOOL success; HCkZip zip; const char *charset; HCkZip zip2; HCkZipEntry entry; success = FALSE; success = FALSE; // ------------------------------------------------------------ // First create a ZIP archive containing three text files. zip = CkZip_Create(); success = CkZip_NewZip(zip,"original.zip"); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } charset = "utf-8"; success = CkZip_AddString(zip,"a.txt","Contents of file A",charset); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } success = CkZip_AddString(zip,"b.txt","Contents of file B",charset); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } success = CkZip_AddString(zip,"c.txt","Contents of file C",charset); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } // Write the ZIP archive to disk. // // The ZIP now contains: // // a.txt // b.txt // c.txt // success = CkZip_WriteZipAndClose(zip); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip)); CkZip_Dispose(zip); return; } // ------------------------------------------------------------ // Open the existing ZIP archive for modification. zip2 = CkZip_Create(); success = CkZip_OpenZip(zip2,"original.zip"); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip2)); CkZip_Dispose(zip); CkZip_Dispose(zip2); return; } // Find the entry named "b.txt". entry = CkZipEntry_Create(); success = CkZip_EntryOf(zip2,"b.txt",entry); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip2)); CkZip_Dispose(zip); CkZip_Dispose(zip2); CkZipEntry_Dispose(entry); return; } // Remove the entry from the in-memory ZIP object. // // At this point, the original ZIP file on disk is unchanged. // The deletion takes effect only after WriteZip or // WriteZipAndClose is called. success = CkZip_DeleteEntry(zip2,entry); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip2)); CkZip_Dispose(zip); CkZip_Dispose(zip2); CkZipEntry_Dispose(entry); return; } // Write the modified ZIP archive to a new file. CkZip_putFileName(zip2,"modified.zip"); success = CkZip_WriteZipAndClose(zip2); if (success == FALSE) { printf("%s\n",CkZip_lastErrorText(zip2)); CkZip_Dispose(zip); CkZip_Dispose(zip2); CkZipEntry_Dispose(entry); return; } // The modified ZIP now contains: // // a.txt // c.txt // printf("ZIP archive updated successfully.\n"); CkZip_Dispose(zip); CkZip_Dispose(zip2); CkZipEntry_Dispose(entry); } |
||||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.