DataFlex
DataFlex
Modify Name of File Stored within Zip when Creating a .zip
See more Zip Examples
Demonstrates how to create a zip where the filename within the .zip is different than the filename that was added from the filesystem.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoZip
Boolean iSaveExtraPath
Variant vEntry
Handle hoEntry
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatZip)) To hoZip
If (Not(IsComObjectCreated(hoZip))) Begin
Send CreateComObject of hoZip
End
// Intialize the zip object by calling NewZip.
Get ComNewZip Of hoZip "myZip.zip" To iSuccess
// Add a reference to a file on disk to the zip object.
// (When appending files to a zip, the files are not actually
// read into memory. References to the file(s) are added.
// When WriteZip is called, the referenced files are streamed in
// and compressed to the .zip.)
Move False To iSaveExtraPath
Get ComAddFile Of hoZip "/temp/a/hamlet.xml" iSaveExtraPath To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// The zip object references a single file.
// Retrieve the entry object...
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
// Set the entry's filename to anything you want:
Set ComFileName Of hoEntry To "somethingElse.xml"
// Note: Internally, the zip component retains the name of
// the file referenced. The current setting of the zip entry's
// FileName property is stored in the .zip when writing.
// The zip written here will contain somethingElse.xml
Get ComWriteZipAndClose Of hoZip To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
End
Else Begin
Showln "Zip created!"
End
End_Procedure