Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Controlling filepaths within a ZipHow to control the filepaths stored within a .zip. LOCAL loZip LOCAL lnSuccess LOCAL lnRecurse loZip = CreateObject('Chilkat.Zip2') * Any string unlocks the component for the 1st 30-days. lnSuccess = loZip.UnlockComponent("Anything for 30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * This is the directory structure on the local filesystem * from which we'll create .zip archives: * The root directory is c:\temp\filesToZip * * We have these files: * c:\temp\filesToZip\faxCover.doc * c:\temp\filesToZip\exe\Setup.exe * c:\temp\filesToZip\images\cheese.jpg * c:\temp\filesToZip\images\dude.gif * c:\temp\filesToZip\images\img3.gif * c:\temp\filesToZip\images\img4.gif * c:\temp\filesToZip\images\img5.gif * c:\temp\filesToZip\images\scream.jpg * c:\temp\filesToZip\images\imageInfo\scream.xml * c:\temp\filesToZip\images\imageInfo\cheese.xml * c:\temp\filesToZip\text\html\bonaireFishing.html * c:\temp\filesToZip\text\html\upload.html * c:\temp\filesToZip\text\txt\hello.txt * c:\temp\filesToZip\text\txt\HelloWorld123.txt * c:\temp\filesToZip\text\xml\hamlet.xml * c:\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 = "c:/temp/filesToZip" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * Clear the zip object. loZip.NewZip("test2.zip") loZip.AppendFromDir = "c:/temp/filesToZip/images" loZip.AppendFiles("*.xml",lnRecurse) loZip.AppendFromDir = "c:/temp/filesToZip/text" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * The PathPrefix property adds an arbitrary path prefix to each * file in the .zip. * For example: * Clear the zip object. loZip.NewZip("test3.zip") loZip.PathPrefix = "chilkat/" loZip.AppendFromDir = "c:/temp/filesToZip/images" loZip.AppendFiles("*.xml",lnRecurse) loZip.AppendFromDir = "c:/temp/filesToZip/text" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * The DiscardPaths property removes the path from each file * in the zip: * For example: * Clear the zip object. loZip.NewZip("test4.zip") loZip.PathPrefix = "" loZip.DiscardPaths = 1 loZip.AppendFromDir = "c:/temp/filesToZip/" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * You can combine PathPrefix with DiscardPaths: * Clear the zip object. loZip.NewZip("test5.zip") loZip.PathPrefix = "chilkat/" loZip.DiscardPaths = 1 loZip.AppendFromDir = "c:/temp/filesToZip/" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF * One last example -- combine DiscardPaths with PathPrefix * with multiple calls to AppendFiles: * Clear the zip object. loZip.NewZip("test6.zip") loZip.DiscardPaths = 1 loZip.AppendFromDir = "c:/temp/filesToZip/" * Get all .gif files: loZip.PathPrefix = "gif/" loZip.AppendFiles("*.gif",lnRecurse) * Get all .jpg files: loZip.PathPrefix = "jpg/" loZip.AppendFiles("*.jpg",lnRecurse) * Get all .xml files: loZip.PathPrefix = "xml/" 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 =MESSAGEBOX(loZip.LastErrorText) QUIT ENDIF |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser