Python Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Python Examples

Quick Start
Python Unicode
Python Byte Array
Python Certs
Python Email
Python Encryption
Python FTP
HTML-to-XML
Python HTTP
Python IMAP
Python MHT
Python MIME
Python RSA
Python S/MIME
Python Signatures
Python Socket
Python Spider
Python Tar
Python Upload
Python XML
Python XMP
Python Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

Controlling filepaths within a Zip

How to control the filepaths stored within a .zip.

Download Chilkat Python Library

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()

 

Need a specific example? Send a request to support@chilkatsoft.com

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