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
(PowerShell) Controlling paths within a ZipHow to control the paths stored within a .zip.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $zip = New-Object 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. $zip.NewZip("test1.zip") $recurse = $true $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 -ne $true) { $($zip.LastErrorText) exit } # 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 -ne $true) { $($zip.LastErrorText) exit } # 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 -ne $true) { $($zip.LastErrorText) exit } # 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 = $true $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 -ne $true) { $($zip.LastErrorText) exit } # You can combine PathPrefix with DiscardPaths: # Clear the zip object. $success = $zip.NewZip("test5.zip") $zip.PathPrefix = "chilkat/" $zip.DiscardPaths = $true $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 -ne $true) { $($zip.LastErrorText) exit } # One last example -- combine DiscardPaths with PathPrefix # with multiple calls to AppendFiles: # Clear the zip object. $success = $zip.NewZip("test6.zip") $zip.DiscardPaths = $true $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 -ne $true) { $($zip.LastErrorText) exit } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.