从文档目录中的文件夹创建 ZIP 文件 - Objective C (ARC)
Posted
技术标签:
【中文标题】从文档目录中的文件夹创建 ZIP 文件 - Objective C (ARC)【英文标题】:Creating a ZIP file from a folder in documents directory - Objective C (ARC) 【发布时间】:2012-07-25 12:15:03 【问题描述】:我有一个使用 ARC 开发的 iPhone 应用程序。我的文档目录中有一个文件夹,其中包含一堆图像,我需要将其压缩并通过电子邮件发送。我的项目使用 ARC。
有没有人有任何对我有帮助的示例代码/资源链接?
我一直在网上搜索,发现与 ARC 不兼容 - 即使它声称是。
【问题讨论】:
您知道可以逐个文件关闭 ARC,对吗?因此,如果您有喜欢的非 ARC 代码,您仍然可以在 ARC 项目中使用它。 ARC不是全有或全无。它是每个文件的编译器选项。 ***.com/questions/6646052/… 为了进一步澄清,如果您有一个构建这样一个 Objective-C 库的 Xcode 项目,并且它不是 ARC,那么您可以将该项目包含在您的项目中并使用该库,无论它是否是 ARC与否。 哦,不,我不知道,干杯。 也许可以看看这个创建 ZIP 文件的内置方法:***.com/a/32723162 【参考方案1】:从此链接http://code.google.com/p/objective-zip/downloads/list (Objective-zip) 下载 Objective-Zip、MiniZip 和 ZLib 并将其拖动到您的项目中。导入文件: ZipFile.h, ZipException.h, FileInZipInfo.h, ZipWriteStream.h, ZipReadStream.h, zlib.h
使用此代码。请看下面:
NSString *stringPath1 = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]];
NSString *FileName=[stringPath1 stringByAppendingPathComponent:@"Your file name"];
NSString *stringPath=[stringPath1 stringByAppendingPathComponent:[@"Your file name" stringByAppendingFormat:@".zip"]];
NSArray *files = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:FileName error:&error];
ZipFile *zipFile = [[ZipFile alloc]initWithFileName:stringPath mode:ZipFileModeCreate];
for(int i = 0;i<files.count;i++)
id myArrayElement = [files objectAtIndex:i];
NSLog(@"add %@", myArrayElement);
NSString *path = [FileName stringByAppendingPathComponent:myArrayElement];
NSDictionary *attributes = [[NSFileManager defaultManager]attributesOfItemAtPath:path error:&error];
NSDate *Date = [attributes objectForKey:NSFileCreationDate];
ZipWriteStream *streem = [zipFile writeFileInZipWithName:myArrayElement fileDate:Date compressionLevel:ZipCompressionLevelBest];
NSData *data = [NSData dataWithContentsOfFile:path];
[streem writeData:data];
[streem finishedWriting];
[zipFile close];
【讨论】:
抱歉,您提供的链接现在已失效。 找到该项目的有效链接:github.com/flyingdolphinstudio/Objective-Zip以上是关于从文档目录中的文件夹创建 ZIP 文件 - Objective C (ARC)的主要内容,如果未能解决你的问题,请参考以下文章
obj 目录中的 *.dll.licenses 文件不是使用 TeamCity 中的 msbuild 创建的
Python zipfile 库 - 从一个目录创建一个仅包含 .pdf 和 .xml 文件的 zip