Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
Append In-Memory Data to Existing Zip w/out Rewriting Entire ZipDemonstrates how to use the QuickAppend method to append in-memory data (string or byte array) to an existing .zip archive. This method works by editing the existing .zip -- it does not rewrite or recompress the contents of the existing .zip. It is the fastest way to append additional files or data to a pre-existing large .zip archive. Note: The QuickAppend method is new and available in the pre-release downloads, or in official releases dated after 6-October-2007. 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(); boolean 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; } // The NewZip method only initializes the Zip object -- it does // not create or write a .zip file. success = zip.NewZip("notUsed.zip"); if (success != true) { System.out.println(zip.lastErrorText()); return; } String inZipFilename; String strData; String strCharset; inZipFilename = "something.txt"; strData = "abcdefghijklmnopqrstuvwxyz1234567890"; strCharset = "iso-8859-1"; // Append a string as a file to the existing zip object. // Please read the notes about strCharset below. zip.AppendString2(inZipFilename,strData,strCharset); // Note: The AppendString method is identical to AppendString2, // except the strCharset argument is omitted and it is assumed // you desire the ANSI charset. // Note: You may append a byte array (or Variant containing // a byte array for ActiveX users) by calling AppendData. // Appends the contents of this zip object to the preExisting.zip // zip archive. preExisting.zip is opened, and the files // referenced by this zip object are streamed in, compressed, // and appended to the end of the archive. success = zip.QuickAppend("preExisting.zip"); if (success != true) { System.out.println(zip.lastErrorText()); return; } System.out.println("Success!"); // Note about strCharset: // string variables in many programming language are Unicode. // It is likely that you don't want to create .zip that contains // a text file that will unzip to Unicode characters (2 bytes/char). // The strCharset argument allows you to specify the exact // charset to use. When the string is added to the .zip, it // is first converted to this charset. English strings // may use "us-ascii". Western-European languages typically // use "iso-8859-1" or "windows-1252". Japanese might choose // between "shift_jis", "iso-2022-jp", "euc-jp", etc. // Chilkat supports all major character encodings. // You may always use "ansi" or "utf-8". // Note: Additional files, directory trees, or in-memory data // can be appended by calling AppendOneFileOrDir, AppendFiles, // AppendString, AppendData, etc. multiple times. // Whatever files and/or in-memory data that are referenced by // this zip object will be appended to preExisting.zip when // QuickAppend is called. } } |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.