Java Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Java Examples

Quick Start
Java Unicode
Java Certs
Java Email
Java Encryption
Java FTP
HTML-to-XML
Java HTTP
Java IMAP
Java MHT
Java MIME
Java RSA
Java S/MIME
Java Signatures
Java Socket
Java Spider
Java Tar
Java Upload
Java XML
Java XMP
Java Zip

More Examples...
Email Object
POP3
SMTP
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

Controlling filepaths within a Zip

How to control the filepaths stored within a .zip.

Download Chilkat Java Library

import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    CkZip zip = new CkZip();

    bool success;

    //  Any string unlocks the component for the 1st 30-days.
    success = zip.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        System.out.println(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.put_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) {
        System.out.println(zip.lastErrorText());
        return;
    }

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

    zip.put_AppendFromDir("c:/temp/filesToZip/images");
    zip.AppendFiles("*.xml",recurse);
    zip.put_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) {
        System.out.println(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.put_PathPrefix("chilkat/");

    zip.put_AppendFromDir("c:/temp/filesToZip/images");
    zip.AppendFiles("*.xml",recurse);
    zip.put_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) {
        System.out.println(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.put_PathPrefix("");
    zip.put_DiscardPaths(true);

    zip.put_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) {
        System.out.println(zip.lastErrorText());
        return;
    }

    //  You can combine PathPrefix with DiscardPaths:

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

    zip.put_PathPrefix("chilkat/");
    zip.put_DiscardPaths(true);

    zip.put_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) {
        System.out.println(zip.lastErrorText());
        return;
    }

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

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

    zip.put_DiscardPaths(true);
    zip.put_AppendFromDir("c:/temp/filesToZip/");

    //  Get all .gif files:
    zip.put_PathPrefix("gif/");
    zip.AppendFiles("*.gif",recurse);

    //  Get all .jpg files:
    zip.put_PathPrefix("jpg/");
    zip.AppendFiles("*.jpg",recurse);

    //  Get all .xml files:
    zip.put_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) {
        System.out.println(zip.lastErrorText());
        return;
    }

  }
}

 

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

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