如何在 Ipad 中压缩文件夹

Posted

技术标签:

【中文标题】如何在 Ipad 中压缩文件夹【英文标题】:How to zip folders in Ipad 【发布时间】:2014-03-21 10:18:33 【问题描述】:

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

-(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】:

ZipArchive 有一个委托协议,该协议在发生错误时发送消息。

在 ZipArchive 分配下方添加。

archiver.delegate = self

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

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

【讨论】:

以上是关于如何在 Ipad 中压缩文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective C 中压缩、解压缩文件(arm64 支持)

如何在android中压缩和解压缩png图像

在java中压缩和解压缩7z文件

如何仅使用 Windows 的内置功能从脚本中压缩或解压缩?

如何在 Laravel 项目中压缩文件夹

我如何在 React js 中压缩任何图像以及 Excel 和 CSV 文件