Sample code for 30+ languages & platforms
Visual FoxPro

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

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