Chilkat HOME Android™ ASP Visual Basic VB.NET C# iOS (IPhone) Objective-C C++ C Unicode C++ Unicode C MFC Delphi DLL Delphi ActiveX FoxPro Java Perl PHP Extension PHP ActiveX Python PowerShell Ruby SQL Server VBScript
|
(IOS) 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. Download: Chilkat IOS (IPhone) Objective-C Libraries NSMutableString *strOutput = [NSMutableString stringWithCapacity:1000]; CkoZip *zip = [[[CkoZip alloc] init] autorelease]; BOOL success; // Any string unlocks the component for the 1st 30-days. success = [zip UnlockComponent: @"Anything for 30-day trial"]; if (success != YES) { [strOutput appendString: zip.LastErrorText]; [strOutput appendString: @"\n"]; self.mainTextField.stringValue = strOutput; 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 != YES) { [strOutput appendString: zip.LastErrorText]; [strOutput appendString: @"\n"]; self.mainTextField.stringValue = strOutput; 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 = YES; success = [zip AppendFiles: @"c:/temp/abc123/*" recurse: recurse]; if (success != YES) { [strOutput appendString: zip.LastErrorText]; [strOutput appendString: @"\n"]; self.mainTextField.stringValue = strOutput; 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 != YES) { [strOutput appendString: zip.LastErrorText]; [strOutput appendString: @"\n"]; self.mainTextField.stringValue = strOutput; return; } [strOutput appendString: @"Success!"]; [strOutput appendString: @"\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. self.mainTextField.stringValue = strOutput; |
© 2000-2013 Chilkat Software, Inc. All Rights Reserved.