zipzap 8.1.1

zipzap 8.1.1

测试已测试
Lang语言 Objective C++Objective C++
许可证 BSD
发布最新发布2015年12月

Glen Low维护。



zipzap 8.1.1

  • Pixelglow Software

ZipZap是Mac OS X和iOS的zip文件I/O库。

zip文件是复合Objective-C文档的理想容器。zip文件被广泛使用且易于理解。您可以随机访问它们的各个部分。该格式压缩效果良好,并且具有广泛的操作系统和工具支持。因此,我们希望将该格式变得更加易用。因此,该库具有以下特征

  • 易于使用的接口:公共API只提供两个类!但是您可以使用熟悉的NSArray集合和属性浏览zip文件。您可以通过熟悉的NSDataNSStream和Image I/O类解压、解压缩和重新压缩zip文件。
  • 高效的实现:我们已经优化了zip文件的读取和写入以减少虚拟内存压力和磁盘文件荡扫。根据您的复合文档的组织方式,更新单个条目可能比将相同的数据写入单独的文件快。
  • 文件格式兼容性:由于ZipZap紧密遵循zip文件格式规范,因此它与大多数Mac、Linux和Windows zip工具兼容。

安装

作为一个独立的项目

  • 在终端中运行git clone https://github.com/pixelglow/ZipZap.git
  • ZipZap目录中,打开ZipZap.xcodeproj Xcode项目。
  • 在Xcode项目中,从下拉菜单中选择ZipZap (iOS Framework)ZipZap (iOS Static Library)ZipZap (OS X Framework)ZipZap (OS X Static Library)方案。
  • 您现在可以用选定的方案进行构建、测试(仅限Mac OS X)或分析。
  • 构建的库和测试用例位于~/Library/Developer/Xcode/DerivedData的子目录中。

作为一个集成到您自己的工作空间中的项目

  • 在终端中运行cd workspace,然后运行git submodule add https://github.com/pixelglow/ZipZap.git
  • 在您的Xcode工作空间中,选择文件>将“工作空间”中添加文件菜单项,然后在ZipZap目录中选取ZipZap.xcodeproj Xcode项目。
  • 在任何将要使用ZipZap的项目目标中
    • 构建阶段>链接二进制与库中,添加相应的libZipZap.a以及任何其他在下面的要求链接部分列出的库。
    • 构建设置>搜索路径>头文件搜索路径下,添加../ZipZap
  • 您现在可以构建、测试或分析这些项目目标。

使用

头文件包含

#import <ZipZap/ZipZap.h>

读取现有的zip文件

ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]
                                            error:nil];
ZZArchiveEntry* firstArchiveEntry = oldArchive.entries[0];
NSLog(@"The first entry's uncompressed size is %lu bytes.", (unsigned long)firstArchiveEntry.uncompressedSize);
NSLog(@"The first entry's data is: %@.", [firstArchiveEntry newDataWithError:nil]);

写入新的zip文件

ZZArchive* newArchive = [[ZZArchive alloc] initWithURL:[NSURL fileURLWithPath:@"/tmp/new.zip"]
                                               options:@{ZZOpenOptionsCreateIfMissingKey : @YES}
                                                 error:nil];
[newArchive updateEntries:
                     @[
                     [ZZArchiveEntry archiveEntryWithFileName:@"first.text"
                                                     compress:YES
                                                    dataBlock:^(NSError** error)
                                                          {
                                                              return [@"hello, world" dataUsingEncoding:NSUTF8StringEncoding];
                                                          }]
                     ]
                    error:nil];

更新现有的zip文件

ZZArchive* oldArchive = [ZZArchive archiveWithURL:[NSURL fileURLWithPath:@"/tmp/old.zip"]
                                            error:nil];
[oldArchive updateEntries:
 [oldArchive.entries arrayByAddingObject:
  [ZZArchiveEntry archiveEntryWithFileName:@"second.text"
                                  compress:YES
                                 dataBlock:^(NSError** error)
                                       {
                                           return [@"bye, world" dataUsingEncoding:NSUTF8StringEncoding];
                                       }]]
                    error:nil];

高级使用:食谱

API参考:参考

需求

  • 构建:Xcode 7 及之后版本。
  • 链接:仅系统库;无需第三方库。
    • ApplicationServices.framework(Mac OS X)或 ImageIO.framework(iOS)
    • Foundation.framework
    • libz.dylib
  • 运行:Mac OS X 10.9(Mavericks)或 iOS 7.0 及之后版本。

支持

许可

ZipZap 使用 BSD 许可证。

捐赠