PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkZip.pb"
IncludeFile "CkZipEntry.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
zip.i = CkZip::ckCreate()
If zip.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Intialize the zip object by calling NewZip.
success = CkZip::ckNewZip(zip,"myZip.zip")
; 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.)
saveExtraPath.i = 0
success = CkZip::ckAddFile(zip,"/temp/a/hamlet.xml",saveExtraPath)
If success = 0
Debug CkZip::ckLastErrorText(zip)
CkZip::ckDispose(zip)
ProcedureReturn
EndIf
; The zip object references a single file.
; Retrieve the entry object...
entry.i = CkZipEntry::ckCreate()
If entry.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkZip::ckEntryAt(zip,0,entry)
; Set the entry's filename to anything you want:
CkZipEntry::setCkFileName(entry, "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
success = CkZip::ckWriteZipAndClose(zip)
If success <> 1
Debug CkZip::ckLastErrorText(zip)
Else
Debug "Zip created!"
EndIf
CkZip::ckDispose(zip)
CkZipEntry::ckDispose(entry)
ProcedureReturn
EndProcedure