C# Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

C# Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML to XML
HTTP
IMAP
Encryption
MHT / HTML Email
MIME
RSA Encryption
S/MIME
Socket
Spider
Tar Archive
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
String
Byte Array
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

Controlling filepaths within a Zip

How to control the filepaths stored within a .zip.

Download Chilkat .NET for 2.0 / 3.5 Framework

Download Chilkat .NET for 1.0 / 1.1 Framework

Chilkat.Zip zip = new Chilkat.Zip();

bool success;

//  Any string unlocks the component for the 1st 30-days.
success = zip.UnlockComponent("Anything for 30-day trial");
if (success != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  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");

bool recurse;
recurse = true;

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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  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 = true;

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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  You can combine PathPrefix with DiscardPaths:

//  Clear the zip object.
zip.NewZip("test5.zip");

zip.PathPrefix = "chilkat/";
zip.DiscardPaths = true;

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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

//  One last example -- combine DiscardPaths with PathPrefix
//  with multiple calls to AppendFiles:

//  Clear the zip object.
zip.NewZip("test6.zip");

zip.DiscardPaths = true;
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 != true) {
    MessageBox.Show(zip.LastErrorText);
    return;
}

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.

Email Component · XML Parser