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
(Ruby) Controlling paths within a ZipHow to control the paths stored within a .zip.
require 'chilkat' # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. zip = Chilkat::CkZip.new() # 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.put_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 != true) print zip.lastErrorText() + "\n"; exit end # Clear the zip object. success = zip.NewZip("test2.zip") zip.put_AppendFromDir("/temp/filesToZip/images") success = zip.AppendFiles("*.xml",recurse) zip.put_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 != true) print zip.lastErrorText() + "\n"; exit end # 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.put_PathPrefix("chilkat/") zip.put_AppendFromDir("/temp/filesToZip/images") success = zip.AppendFiles("*.xml",recurse) zip.put_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 != true) print zip.lastErrorText() + "\n"; exit end # The DiscardPaths property removes the path from each file # in the zip: # For example: # Clear the zip object. success = zip.NewZip("test4.zip") zip.put_PathPrefix("") zip.put_DiscardPaths(true) zip.put_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 != true) print zip.lastErrorText() + "\n"; exit end # You can combine PathPrefix with DiscardPaths: # Clear the zip object. success = zip.NewZip("test5.zip") zip.put_PathPrefix("chilkat/") zip.put_DiscardPaths(true) zip.put_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 != true) print zip.lastErrorText() + "\n"; exit end # One last example -- combine DiscardPaths with PathPrefix # with multiple calls to AppendFiles: # Clear the zip object. success = zip.NewZip("test6.zip") zip.put_DiscardPaths(true) zip.put_AppendFromDir("/temp/filesToZip/") # Get all .gif files: zip.put_PathPrefix("gif/") success = zip.AppendFiles("*.gif",recurse) # Get all .jpg files: zip.put_PathPrefix("jpg/") success = zip.AppendFiles("*.jpg",recurse) # Get all .xml files: zip.put_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 != true) print zip.lastErrorText() + "\n"; exit end |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.