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
(AutoIt) Controlling paths within a ZipHow to control the paths stored within a .zip.
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oZip = ObjCreate("Chilkat.Zip") Local $bSuccess ; 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. $oZip.NewZip("test1.zip") Local $bRecurse = True $oZip.AppendFromDir = "/temp/filesToZip" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) ; The zip will contain: ; images/imageInfo/scream.xml ; images/imageInfo/cheese.xml ; text/xml/hamlet.xml ; text/xml/pigs.xml $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf ; Clear the zip object. $bSuccess = $oZip.NewZip("test2.zip") $oZip.AppendFromDir = "/temp/filesToZip/images" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) $oZip.AppendFromDir = "/temp/filesToZip/text" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) ; The zip will contain: ; imageInfo/scream.xml ; imageInfo/cheese.xml ; xml/hamlet.xml ; xml/pigs.xml $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf ; The PathPrefix property adds an arbitrary path prefix to each ; file in the .zip. ; For example: ; Clear the zip object. $bSuccess = $oZip.NewZip("test3.zip") $oZip.PathPrefix = "chilkat/" $oZip.AppendFromDir = "/temp/filesToZip/images" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) $oZip.AppendFromDir = "/temp/filesToZip/text" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) ; The zip will contain: ; chilkat/imageInfo/scream.xml ; chilkat/imageInfo/cheese.xml ; chilkat/xml/hamlet.xml ; chilkat/xml/pigs.xml $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf ; The DiscardPaths property removes the path from each file ; in the zip: ; For example: ; Clear the zip object. $bSuccess = $oZip.NewZip("test4.zip") $oZip.PathPrefix = "" $oZip.DiscardPaths = True $oZip.AppendFromDir = "/temp/filesToZip/" $bSuccess = $oZip.AppendFiles("*",$bRecurse) ; 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 $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf ; You can combine PathPrefix with DiscardPaths: ; Clear the zip object. $bSuccess = $oZip.NewZip("test5.zip") $oZip.PathPrefix = "chilkat/" $oZip.DiscardPaths = True $oZip.AppendFromDir = "/temp/filesToZip/" $bSuccess = $oZip.AppendFiles("*",$bRecurse) ; 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 $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf ; One last example -- combine DiscardPaths with PathPrefix ; with multiple calls to AppendFiles: ; Clear the zip object. $bSuccess = $oZip.NewZip("test6.zip") $oZip.DiscardPaths = True $oZip.AppendFromDir = "/temp/filesToZip/" ; Get all .gif files: $oZip.PathPrefix = "gif/" $bSuccess = $oZip.AppendFiles("*.gif",$bRecurse) ; Get all .jpg files: $oZip.PathPrefix = "jpg/" $bSuccess = $oZip.AppendFiles("*.jpg",$bRecurse) ; Get all .xml files: $oZip.PathPrefix = "xml/" $bSuccess = $oZip.AppendFiles("*.xml",$bRecurse) ; 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 $bSuccess = $oZip.WriteZipAndClose() If ($bSuccess <> True) Then ConsoleWrite($oZip.LastErrorText & @CRLF) Exit EndIf |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.