Visual FoxPro
Visual FoxPro
Iterate Through Matching ZIP Entries Using EntryMatching and ZipEntry.GetNextMatch
See more Zip Examples
This example demonstrates how to iterate through ZIP entries matching a wildcard pattern using:
-
Zip.EntryMatchingto obtain the first matching entry -
ZipEntry.GetNextMatchto advance to subsequent matching entries
The wildcard character * matches zero or more characters. Matching is performed against the full stored ZIP entry path.
The example searches for all entries beneath the docs/ directory.
Suppose the ZIP archive contains:
docs/
docs/readme.txt
docs/manual.pdf
docs/sub1/notes.txt
images/logo.png
hello.txt The wildcard pattern:
docs/* Matches:
docs/
docs/readme.txt
docs/manual.pdf
docs/sub1/notes.txt Note that ZIP archives may optionally contain separate directory entries. Therefore, the first matching entry may be the directory entry docs/ rather than a file entry.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loZip
LOCAL loEntry
lnSuccess = 0
loZip = CreateObject('Chilkat.Zip')
* Open an existing ZIP archive.
lnSuccess = loZip.OpenZip("c:/temp/sample.zip")
IF (lnSuccess = 0) THEN
? loZip.LastErrorText
RELEASE loZip
CANCEL
ENDIF
* ------------------------------------------------------------
* Find the first ZIP entry matching the wildcard pattern:
*
* docs/*
*
* Matching is performed against the full stored ZIP path.
*
loEntry = CreateObject('Chilkat.ZipEntry')
lnSuccess = loZip.EntryMatching("docs/*",loEntry)
IF (lnSuccess = 0) THEN
? "No matching entries found."
loZip.CloseZip()
RELEASE loZip
RELEASE loEntry
CANCEL
ENDIF
* ------------------------------------------------------------
* Iterate through all matching entries.
*
* GetNextMatch updates the same ZipEntry object so that
* it represents the next matching entry.
*
DO WHILE (lnSuccess = 1)
IF (loEntry.IsDirectory = 1) THEN
? "[Directory] " + loEntry.FileName
ELSE
? "[File] " + loEntry.FileName
ENDIF
* Advance to the next matching entry.
lnSuccess = loEntry.GetNextMatch("docs/*")
ENDDO
loZip.CloseZip()
? "Done."
RELEASE loZip
RELEASE loEntry