Sample code for 30+ languages & platforms
Visual FoxPro Requires Chilkat v11.0.0+

Remove an Entry from an Existing ZIP Using DeleteEntry

See more Zip Examples

This example demonstrates how to use the DeleteEntry method to remove a file from an existing ZIP archive.

The example:

  • Creates a ZIP archive containing three text files
  • Opens the ZIP archive for modification
  • Finds and deletes one entry
  • Writes the modified ZIP archive to a new filename

Suppose the original ZIP archive contains:

a.txt
b.txt
c.txt

After deleting b.txt, the modified ZIP archive contains:

a.txt
c.txt

The entry is removed only from the in-memory ZIP object until a Write* method is called.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loZip
LOCAL lcCharset
LOCAL loZip2
LOCAL loEntry

lnSuccess = 0

*  ------------------------------------------------------------
*  First create a ZIP archive containing three text files.

loZip = CreateObject('Chilkat.Zip')

lnSuccess = loZip.NewZip("original.zip")
IF (lnSuccess = 0) THEN
    ? loZip.LastErrorText
    RELEASE loZip
    CANCEL
ENDIF

lcCharset = "utf-8"

lnSuccess = loZip.AddString("a.txt","Contents of file A",lcCharset)
IF (lnSuccess = 0) THEN
    ? loZip.LastErrorText
    RELEASE loZip
    CANCEL
ENDIF

lnSuccess = loZip.AddString("b.txt","Contents of file B",lcCharset)
IF (lnSuccess = 0) THEN
    ? loZip.LastErrorText
    RELEASE loZip
    CANCEL
ENDIF

lnSuccess = loZip.AddString("c.txt","Contents of file C",lcCharset)
IF (lnSuccess = 0) THEN
    ? loZip.LastErrorText
    RELEASE loZip
    CANCEL
ENDIF

*  Write the ZIP archive to disk.
*  
*  The ZIP now contains:
*  
*      a.txt
*      b.txt
*      c.txt
*  
lnSuccess = loZip.WriteZipAndClose()
IF (lnSuccess = 0) THEN
    ? loZip.LastErrorText
    RELEASE loZip
    CANCEL
ENDIF

*  ------------------------------------------------------------
*  Open the existing ZIP archive for modification.

loZip2 = CreateObject('Chilkat.Zip')

lnSuccess = loZip2.OpenZip("original.zip")
IF (lnSuccess = 0) THEN
    ? loZip2.LastErrorText
    RELEASE loZip
    RELEASE loZip2
    CANCEL
ENDIF

*  Find the entry named "b.txt".
loEntry = CreateObject('Chilkat.ZipEntry')

lnSuccess = loZip2.EntryOf("b.txt",loEntry)
IF (lnSuccess = 0) THEN
    ? loZip2.LastErrorText
    RELEASE loZip
    RELEASE loZip2
    RELEASE loEntry
    CANCEL
ENDIF

*  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.
lnSuccess = loZip2.DeleteEntry(loEntry)
IF (lnSuccess = 0) THEN
    ? loZip2.LastErrorText
    RELEASE loZip
    RELEASE loZip2
    RELEASE loEntry
    CANCEL
ENDIF

*  Write the modified ZIP archive to a new file.
loZip2.FileName = "modified.zip"

lnSuccess = loZip2.WriteZipAndClose()
IF (lnSuccess = 0) THEN
    ? loZip2.LastErrorText
    RELEASE loZip
    RELEASE loZip2
    RELEASE loEntry
    CANCEL
ENDIF

*  The modified ZIP now contains:
*  
*      a.txt
*      c.txt
*  

? "ZIP archive updated successfully."

RELEASE loZip
RELEASE loZip2
RELEASE loEntry