如何在Ipad中压缩文件夹

时间:2014-03-21 10:18:34

标签: objective-c ipad ios7 zip xcode5

在我的应用程序中,我正在截取图像视图的屏幕截图,然后我将这些屏幕截图保存在应用程序的文档文件夹中。现在我想通过电子邮件发送所有这些图像与它们所在的文件夹结构相同。压缩所有文件夹包含图像?

-(void)ZipFile2{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [paths objectAtIndex:0];
BOOL isDir=NO;
NSArray *subpaths;
NSString *exportPath = docDirectory;
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:exportPath isDirectory:&isDir] && isDir){
    subpaths = [fileManager subpathsAtPath:exportPath];
}
NSString *archivePath = [docDirectory stringByAppendingString:@"Uploads.zip"];    
ZipArchive *archiver = [[ZipArchive alloc] init];
[archiver CreateZipFile2:archivePath];
for(NSString *path in subpaths)
{
    NSString *longPath = [exportPath stringByAppendingPathComponent:path];
    if([fileManager fileExistsAtPath:longPath isDirectory:&isDir] && !isDir)
    {
        [archiver addFileToZip:longPath newname:path];
    }
}
BOOL successCompressing = [archiver CloseZipFile2];
if(successCompressing)
    NSLog(@"Success");
else
    NSLog(@"Fail");

}

我使用此代码但是我的Ipad中没有创建zip文件???你可以帮我吗

1 个答案:

答案 0 :(得分:0)

ZipArchive有一个委托协议,只要发生错误就会发送消息。

添加以下ZipArchive分配。

archiver.delegate = self

将协议添加到头类,然后实现以下方法:

- (void)ErrorMessage:(NSString*) msg {
    NSLog(@"Zip error: %@", msg);
}