Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Controlling paths within a ZipHow to control the paths stored within a .zip.
LOCAL loZip LOCAL lnSuccess LOCAL lnRecurse * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Zip') loZip = 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. loZip.NewZip("test1.zip") lnRecurse = 1 loZip.AppendFromDir = "/temp/filesToZip" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) * The zip will contain: * images/imageInfo/scream.xml * images/imageInfo/cheese.xml * text/xml/hamlet.xml * text/xml/pigs.xml lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF * Clear the zip object. lnSuccess = loZip.NewZip("test2.zip") loZip.AppendFromDir = "/temp/filesToZip/images" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) loZip.AppendFromDir = "/temp/filesToZip/text" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) * The zip will contain: * imageInfo/scream.xml * imageInfo/cheese.xml * xml/hamlet.xml * xml/pigs.xml lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF * The PathPrefix property adds an arbitrary path prefix to each * file in the .zip. * For example: * Clear the zip object. lnSuccess = loZip.NewZip("test3.zip") loZip.PathPrefix = "chilkat/" loZip.AppendFromDir = "/temp/filesToZip/images" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) loZip.AppendFromDir = "/temp/filesToZip/text" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) * The zip will contain: * chilkat/imageInfo/scream.xml * chilkat/imageInfo/cheese.xml * chilkat/xml/hamlet.xml * chilkat/xml/pigs.xml lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF * The DiscardPaths property removes the path from each file * in the zip: * For example: * Clear the zip object. lnSuccess = loZip.NewZip("test4.zip") loZip.PathPrefix = "" loZip.DiscardPaths = 1 loZip.AppendFromDir = "/temp/filesToZip/" lnSuccess = loZip.AppendFiles("*",lnRecurse) * 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 lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF * You can combine PathPrefix with DiscardPaths: * Clear the zip object. lnSuccess = loZip.NewZip("test5.zip") loZip.PathPrefix = "chilkat/" loZip.DiscardPaths = 1 loZip.AppendFromDir = "/temp/filesToZip/" lnSuccess = loZip.AppendFiles("*",lnRecurse) * 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 lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF * One last example -- combine DiscardPaths with PathPrefix * with multiple calls to AppendFiles: * Clear the zip object. lnSuccess = loZip.NewZip("test6.zip") loZip.DiscardPaths = 1 loZip.AppendFromDir = "/temp/filesToZip/" * Get all .gif files: loZip.PathPrefix = "gif/" lnSuccess = loZip.AppendFiles("*.gif",lnRecurse) * Get all .jpg files: loZip.PathPrefix = "jpg/" lnSuccess = loZip.AppendFiles("*.jpg",lnRecurse) * Get all .xml files: loZip.PathPrefix = "xml/" lnSuccess = loZip.AppendFiles("*.xml",lnRecurse) * 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 lnSuccess = loZip.WriteZipAndClose() IF (lnSuccess <> 1) THEN ? loZip.LastErrorText RELEASE loZip CANCEL ENDIF RELEASE loZip |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.