/**
解压文件到指定的路径
@param filePath 将要解压文件的全路径
@param destinationPath 解压目标路径
@param fileName 解压文件名
@return 是否解压完成
*/
- (BOOL)unzipWithFilePath:(NSString *)filePath
destinationPath:(NSString *)destinationPath
unzipFileName:(NSString *)fileName {
__block BOOL unzipSucceed = NO;
NSString *unzipPath = [destinationPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@%@", fileName, @“-unzip”];
NSString *unzipCompletePath = [destinationPath stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:destinationPath]) {
NSError *error = nil;
[fileManager createDirectoryAtPath:destinationPath withIntermediateDirectories:YES attributes:nil error:&error];
if (error) {
unzipSucceed = NO;
return unzipSucceed;
}
}
[SSZipArchive unzipFileAtPath:filePath toDestination:unzipPath progressHandler:^(NSString * _Nonnull entry, unz_file_info zipInfo, long entryNumber, long total) {
} completionHandler:^(NSString * _Nonnull path, BOOL succeeded, NSError * _Nullable error) {
if (!succeeded) {
[[NSFileManager defaultManager] removeItemAtPath:unzipPath
error:nil];
unzipSucceed = succeeded;
} else {
NSError * error = nil;
[[NSFileManager defaultManager] moveItemAtPath:unzipPath
toPath:unzipCompletePath
error:&error];
if (error) {
unzipSucceed = NO;
} else {
unzipSucceed = YES;
}
}
}];