Python Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Python Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
Socket / SSL
SFTP
SMTP
Spider
SSH Key
SSH
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

Controlling filepaths within a Zip

How to control the filepaths stored within a .zip.

 Chilkat Python Module Downloads for Windows, Linux, and MAC OS X

import sys
import chilkat

zip = chilkat.CkZip()

#  Any string unlocks the component for the 1st 30-days.
success = zip.UnlockComponent("Anything for 30-day trial")
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  This is the directory structure on the local filesystem
#  from which we'll create .zip archives:
#  The root directory is c:\temp\filesToZip
# 
#  We have these files:
#  c:\temp\filesToZip\faxCover.doc
#  c:\temp\filesToZip\exe\Setup.exe
#  c:\temp\filesToZip\images\cheese.jpg
#  c:\temp\filesToZip\images\dude.gif
#  c:\temp\filesToZip\images\img3.gif
#  c:\temp\filesToZip\images\img4.gif
#  c:\temp\filesToZip\images\img5.gif
#  c:\temp\filesToZip\images\scream.jpg
#  c:\temp\filesToZip\images\imageInfo\scream.xml
#  c:\temp\filesToZip\images\imageInfo\cheese.xml
#  c:\temp\filesToZip\text\html\bonaireFishing.html
#  c:\temp\filesToZip\text\html\upload.html
#  c:\temp\filesToZip\text\txt\hello.txt
#  c:\temp\filesToZip\text\txt\HelloWorld123.txt
#  c:\temp\filesToZip\text\xml\hamlet.xml
#  c:\temp\filesToZip\text\xml\pigs.xml

#  There are three properties to help control the paths stored
#  within a .zip:
#  AppendFromDir
#  PathPrefix
#  DiscardPaths
# 

#  First we'll demonstrate AppendFromDir
#  When a directory tree is appended via AppendFiles or
#  AppendFilesEx, the AppendFromDir sets the base of the
#  directory tree appended (if the file pattern contains a
#  relative path, or no path at all).

#  Clear the zip object.
zip.NewZip("test1.zip")

recurse = True

zip.put_AppendFromDir("c:/temp/filesToZip")
zip.AppendFiles("*.xml",recurse)

#  The zip will contain:
#  images\imageInfo\scream.xml
#  images\imageInfo\cheese.xml
#  text\xml\hamlet.xml
#  text\xml\pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  Clear the zip object.
zip.NewZip("test2.zip")

zip.put_AppendFromDir("c:/temp/filesToZip/images")
zip.AppendFiles("*.xml",recurse)
zip.put_AppendFromDir("c:/temp/filesToZip/text")
zip.AppendFiles("*.xml",recurse)

#  The zip will contain:
#  imageInfo\scream.xml
#  imageInfo\cheese.xml
#  xml\hamlet.xml
#  xml\pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  The PathPrefix property adds an arbitrary path prefix to each
#  file in the .zip.
#  For example:

#  Clear the zip object.
zip.NewZip("test3.zip")

zip.put_PathPrefix("chilkat/")

zip.put_AppendFromDir("c:/temp/filesToZip/images")
zip.AppendFiles("*.xml",recurse)
zip.put_AppendFromDir("c:/temp/filesToZip/text")
zip.AppendFiles("*.xml",recurse)

#  The zip will contain:
#  chilkat\imageInfo\scream.xml
#  chilkat\imageInfo\cheese.xml
#  chilkat\xml\hamlet.xml
#  chilkat\xml\pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  The DiscardPaths property removes the path from each file
#  in the zip:
#  For example:

#  Clear the zip object.
zip.NewZip("test4.zip")

zip.put_PathPrefix("")
zip.put_DiscardPaths(True)

zip.put_AppendFromDir("c:/temp/filesToZip/")
zip.AppendFiles("*",recurse)

#  The zip will contain:
#  faxCover.doc
#  Setup.exe
#  cheese.jpg
#  dude.gif
#  img3.gif
#  img4.gif
#  img5.gif
#  scream.jpg
#  scream.xml
#  cheese.xml
#  bonaireFishing.html
#  upload.html
#  hello.txt
#  HelloWorld123.txt
#  hamlet.xml
#  pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  You can combine PathPrefix with DiscardPaths:

#  Clear the zip object.
zip.NewZip("test5.zip")

zip.put_PathPrefix("chilkat/")
zip.put_DiscardPaths(True)

zip.put_AppendFromDir("c:/temp/filesToZip/")
zip.AppendFiles("*",recurse)

#  The zip will contain:
#  chilkat\faxCover.doc
#  chilkat\Setup.exe
#  chilkat\cheese.jpg
#  chilkat\dude.gif
#  chilkat\img3.gif
#  chilkat\img4.gif
#  chilkat\img5.gif
#  chilkat\scream.jpg
#  chilkat\scream.xml
#  chilkat\cheese.xml
#  chilkat\bonaireFishing.html
#  chilkat\upload.html
#  chilkat\hello.txt
#  chilkat\HelloWorld123.txt
#  chilkat\hamlet.xml
#  chilkat\pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

#  One last example -- combine DiscardPaths with PathPrefix
#  with multiple calls to AppendFiles:

#  Clear the zip object.
zip.NewZip("test6.zip")

zip.put_DiscardPaths(True)
zip.put_AppendFromDir("c:/temp/filesToZip/")

#  Get all .gif files:
zip.put_PathPrefix("gif/")
zip.AppendFiles("*.gif",recurse)

#  Get all .jpg files:
zip.put_PathPrefix("jpg/")
zip.AppendFiles("*.jpg",recurse)

#  Get all .xml files:
zip.put_PathPrefix("xml/")
zip.AppendFiles("*.xml",recurse)

#  The zip will contain:
#  jpg\cheese.jpg
#  gif\dude.gif
#  gif\img3.gif
#  gif\img4.gif
#  gif\img5.gif
#  jpg\scream.jpg
#  xml\scream.xml
#  xml\cheese.xml
#  xml\hamlet.xml
#  xml\pigs.xml

success = zip.WriteZipAndClose()
if (success != True):
    print zip.lastErrorText()
    sys.exit()

 

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.