![]() |
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
(Unicode 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_CkZipW.h> #include <C_CkZipEntryW.h> void ChilkatSample(void) { BOOL success; HCkZipW zip; const wchar_t *charset; HCkZipW zip2; HCkZipEntryW entry; success = FALSE; success = FALSE; // ------------------------------------------------------------ // First create a ZIP archive containing three text files. zip = CkZipW_Create(); success = CkZipW_NewZip(zip,L"original.zip"); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } charset = L"utf-8"; success = CkZipW_AddString(zip,L"a.txt",L"Contents of file A",charset); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } success = CkZipW_AddString(zip,L"b.txt",L"Contents of file B",charset); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } success = CkZipW_AddString(zip,L"c.txt",L"Contents of file C",charset); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } // Write the ZIP archive to disk. // // The ZIP now contains: // // a.txt // b.txt // c.txt // success = CkZipW_WriteZipAndClose(zip); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } // ------------------------------------------------------------ // Open the existing ZIP archive for modification. zip2 = CkZipW_Create(); success = CkZipW_OpenZip(zip2,L"original.zip"); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip2)); CkZipW_Dispose(zip); CkZipW_Dispose(zip2); return; } // Find the entry named "b.txt". entry = CkZipEntryW_Create(); success = CkZipW_EntryOf(zip2,L"b.txt",entry); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip2)); CkZipW_Dispose(zip); CkZipW_Dispose(zip2); CkZipEntryW_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 = CkZipW_DeleteEntry(zip2,entry); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip2)); CkZipW_Dispose(zip); CkZipW_Dispose(zip2); CkZipEntryW_Dispose(entry); return; } // Write the modified ZIP archive to a new file. CkZipW_putFileName(zip2,L"modified.zip"); success = CkZipW_WriteZipAndClose(zip2); if (success == FALSE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip2)); CkZipW_Dispose(zip); CkZipW_Dispose(zip2); CkZipEntryW_Dispose(entry); return; } // The modified ZIP now contains: // // a.txt // c.txt // wprintf(L"ZIP archive updated successfully.\n"); CkZipW_Dispose(zip); CkZipW_Dispose(zip2); CkZipEntryW_Dispose(entry); } |
||||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.