DataFlex
DataFlex
Find a ZIP Entry by EntryID Using EntryById
See more Zip Examples
This example demonstrates how to use the EntryById method to retrieve a ZIP entry using its unique EntryID.
Each ZipEntry object has an EntryID property that uniquely identifies the entry within the currently open ZIP object.
This is useful when:
- An application stores EntryID values for later use
- ZIP entries need to be retrieved without searching by filename
- Multiple entries may have similar names or paths
The example:
- Opens a ZIP archive
-
Retrieves an entry using
EntryAt -
Saves the entry's
EntryID -
Uses
EntryByIdto retrieve the same entry later
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoZip
Variant vEntry
Handle hoEntry
Integer iEntryId
Variant vEntry
2 Handle hoEntry2
String sTemp1
Integer iTemp1
Move False To iSuccess
Move False To iSuccess
// Open an existing ZIP archive.
Get Create (RefClass(cComChilkatZip)) To hoZip
If (Not(IsComObjectCreated(hoZip))) Begin
Send CreateComObject of hoZip
End
Get ComOpenZip Of hoZip "example.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Retrieve the first entry in the ZIP archive.
Get Create (RefClass(cComChilkatZipEntry)) To hoEntry
If (Not(IsComObjectCreated(hoEntry))) Begin
Send CreateComObject of hoEntry
End
Get pvComObject of hoEntry to vEntry
Get ComEntryAt Of hoZip 0 vEntry To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Original entry:"
Get ComFileName Of hoEntry To sTemp1
Showln " FileName: " sTemp1
Get ComEntryID Of hoEntry To iTemp1
Showln " EntryID: " iTemp1
Showln ""
// Save the EntryID for later use.
Get ComEntryID Of hoEntry To iEntryId
// Create another ZipEntry object.
Get Create (RefClass(cComChilkatZipEntry)) To hoEntry2
If (Not(IsComObjectCreated(hoEntry2))) Begin
Send CreateComObject of hoEntry2
End
// Retrieve the same entry using EntryById.
Get pvComObject of hoEntry2 to vEntry2
Get ComEntryById Of hoZip iEntryId vEntry2 To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Entry retrieved by EntryID:"
Get ComFileName Of hoEntry2 To sTemp1
Showln " FileName: " sTemp1
Get ComEntryID Of hoEntry2 To iTemp1
Showln " EntryID: " iTemp1
Showln ""
// The filenames and EntryID values should match.
Send ComCloseZip To hoZip
Showln "Done."
End_Procedure