VBScript
VBScript
Controlling paths within a Zip
See more Zip Examples
How to control the paths stored within a .zip.Chilkat VBScript Downloads
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)
success = 0
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
set zip = CreateObject("Chilkat.Zip")
' This is the directory structure on the local filesystem
' from which we'll create .zip archives:
' The root directory is /temp/filesToZip
'
' We have these files:
' /temp/filesToZip/faxCover.doc
' /temp/filesToZip/exe/Setup.exe
' /temp/filesToZip/images/cheese.jpg
' /temp/filesToZip/images/dude.gif
' /temp/filesToZip/images/img3.gif
' /temp/filesToZip/images/img4.gif
' /temp/filesToZip/images/img5.gif
' /temp/filesToZip/images/scream.jpg
' /temp/filesToZip/images/imageInfo/scream.xml
' /temp/filesToZip/images/imageInfo/cheese.xml
' /temp/filesToZip/text/html/bonaireFishing.html
' /temp/filesToZip/text/html/upload.html
' /temp/filesToZip/text/txt/hello.txt
' /temp/filesToZip/text/txt/HelloWorld123.txt
' /temp/filesToZip/text/xml/hamlet.xml
' /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.
success = zip.NewZip("test1.zip")
recurse = 1
zip.AppendFromDir = "/temp/filesToZip"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
' Clear the zip object.
success = zip.NewZip("test2.zip")
zip.AppendFromDir = "/temp/filesToZip/images"
success = zip.AppendFiles("*.xml",recurse)
zip.AppendFromDir = "/temp/filesToZip/text"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
' The PathPrefix property adds an arbitrary path prefix to each
' file in the .zip.
' For example:
' Clear the zip object.
success = zip.NewZip("test3.zip")
zip.PathPrefix = "chilkat/"
zip.AppendFromDir = "/temp/filesToZip/images"
success = zip.AppendFiles("*.xml",recurse)
zip.AppendFromDir = "/temp/filesToZip/text"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
' The DiscardPaths property removes the path from each file
' in the zip:
' For example:
' Clear the zip object.
success = zip.NewZip("test4.zip")
zip.PathPrefix = ""
zip.DiscardPaths = 1
zip.AppendFromDir = "/temp/filesToZip/"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
' You can combine PathPrefix with DiscardPaths:
' Clear the zip object.
success = zip.NewZip("test5.zip")
zip.PathPrefix = "chilkat/"
zip.DiscardPaths = 1
zip.AppendFromDir = "/temp/filesToZip/"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
' One last example -- combine DiscardPaths with PathPrefix
' with multiple calls to AppendFiles:
' Clear the zip object.
success = zip.NewZip("test6.zip")
zip.DiscardPaths = 1
zip.AppendFromDir = "/temp/filesToZip/"
' Get all .gif files:
zip.PathPrefix = "gif/"
success = zip.AppendFiles("*.gif",recurse)
' Get all .jpg files:
zip.PathPrefix = "jpg/"
success = zip.AppendFiles("*.jpg",recurse)
' Get all .xml files:
zip.PathPrefix = "xml/"
success = 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 <> 1) Then
outFile.WriteLine(zip.LastErrorText)
WScript.Quit
End If
outFile.Close