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. Dim zip As New ChilkatZip2 Dim success As Long ' Any string unlocks the component for the 1st 30-days. success = zip.UnlockComponent("Anything for 30-day trial") If (success <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' 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. zip.NewZip "test1.zip" Dim recurse As Long recurse = 1 zip.AppendFromDir = "c:/temp/filesToZip" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' Clear the zip object. zip.NewZip "test2.zip" zip.AppendFromDir = "c:/temp/filesToZip/images" zip.AppendFiles "*.xml",recurse zip.AppendFromDir = "c:/temp/filesToZip/text" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' The PathPrefix property adds an arbitrary path prefix to each ' file in the .zip. ' For example: ' Clear the zip object. zip.NewZip "test3.zip" zip.PathPrefix = "chilkat/" zip.AppendFromDir = "c:/temp/filesToZip/images" zip.AppendFiles "*.xml",recurse zip.AppendFromDir = "c:/temp/filesToZip/text" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' The DiscardPaths property removes the path from each file ' in the zip: ' For example: ' Clear the zip object. zip.NewZip "test4.zip" zip.PathPrefix = "" zip.DiscardPaths = 1 zip.AppendFromDir = "c:/temp/filesToZip/" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' You can combine PathPrefix with DiscardPaths: ' Clear the zip object. zip.NewZip "test5.zip" zip.PathPrefix = "chilkat/" zip.DiscardPaths = 1 zip.AppendFromDir = "c:/temp/filesToZip/" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If ' One last example -- combine DiscardPaths with PathPrefix ' with multiple calls to AppendFiles: ' Clear the zip object. zip.NewZip "test6.zip" zip.DiscardPaths = 1 zip.AppendFromDir = "c:/temp/filesToZip/" ' Get all .gif files: zip.PathPrefix = "gif/" zip.AppendFiles "*.gif",recurse ' Get all .jpg files: zip.PathPrefix = "jpg/" zip.AppendFiles "*.jpg",recurse ' Get all .xml files: zip.PathPrefix = "xml/" 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 <> 1) Then MsgBox zip.LastErrorText Exit Sub End If |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.