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. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ChilkatZip2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var zip: TChilkatZip2; success: Integer; inZipFilename: String; strData: String; strCharset: String; begin zip := TChilkatZip2.Create(Self); // Any string unlocks the component for the 1st 30-days. success := zip.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(zip.LastErrorText); end; // The NewZip method only initializes the Zip object -- it does // not create or write a .zip file. success := zip.NewZip('notUsed.zip'); if (success <> 1) then begin ShowMessage(zip.LastErrorText); end; 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 <> 1) then begin ShowMessage(zip.LastErrorText); end; ShowMessage('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. end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2007 Chilkat Software, Inc. All Rights Reserved.