b6f7f605fef4c222db8214386bed9e37654e687d
Fixes issues with files being truncated when their headers have values that represent smaller uncompressed sizes then the actual data. This generally fixes issues where the whatever program zipped the file fucked up the headers. The fix makes ssziparchive behave like other unzip utilities that ignore the header and decompress the actual data until it's finished. I've tested a bunch and all of the tests included pass, if any other issues arrive I'd be glad to take additional time to look into it. Includes a file, IncorrectHeaders.zip, that is a zip of a folder called IncorrectHeaders which includes a single file, Readme.txt. I've intentionally changed the header for that file to read 50 bytes intend of the actual 59 for testing purposes.
SSZipArchive
SSZipArchive is a simple utility class for zipping and unzipping files. Features:
- Unzipping zip files
- Unzipping password protected zip files
- Creating zip files
- Appending to zip files
- Zipping files
- Zipping NSData with a filename
- Works in ARC and non-ARC projects
Adding to your project
- Add
SSZipArchive.h,SSZipArchive.m, andminizipto your project. - Add the
libzlibrary to your target
You don't need to do anything regarding ARC. SSZipArchive will detect if you're not using ARC and add the required memory management code.
Usage
// Unzipping
NSString *zipPath = @"path_to_your_zip_file";
NSString *destinationPath = @"path_to_the_folder_where_you_want_it_unzipped";
[SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath];
// Zipping
NSString *zippedPath = @"path_where_you_want_the_file_created";
NSArray *inputPaths = [NSArray arrayWithObjects:
[[NSBundle mainBundle] pathForResource:@"photo1" ofType:@"jpg"],
[[NSBundle mainBundle] pathForResource:@"photo2" ofType:@"jpg"]
nil];
[SSZipArchive createZipFileAtPath:zippedPath withFilesAtPaths:inputPaths];
License
SSZipArchive is licensed under the MIT license. A slightly modified version of Minizip 1.1 is also included and is licensed under the Zlib license.
Thanks
Thanks aish for creating ZipArchive which SSZipArchive is based on, Johnnie Walker (@randomsequence) for implementing creation support, and John Engelhart (@johnezang) for all his amazing help along the way.
Description
Languages
C
79.6%
Objective-C
18.5%
Swift
1.5%
Ruby
0.3%