Visual FoxPro
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
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