Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
Append Dir Tree to Existing Zip w/out Rewriting Entire ZipDemonstrates how to use the QuickAppend method to append a directory tree 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 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.
// Needs #include <CkZip.h> CkString strOut; CkZip zip; bool success; // Any string unlocks the component for the 1st 30-days. success = zip.UnlockComponent("Anything for 30-day trial"); if (success != true) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Add a references to all files in a directory tree. // Note: this does not read or compress the file contents -- // it simply adds file references to the zip object. bool recurse; recurse = true; success = zip.AppendFiles("c:/temp/abc123/*",recurse); if (success != true) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Appends the contents of the 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) { strOut.append(zip.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("Success!\r\n"); // 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. SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.