NSFileManager
を使用するために、次のカテゴリ メソッドを作成しましたZipKit
。
- (BOOL)zipContentsOfDirectoryAtPath:(NSString *)directory toPath:(NSString *)filename recursive:(BOOL)recursive {
// If there is already a file at the destination, delete it
if ([self fileExistsAtPath:filename]) {
[self removeItemAtPath:filename error:nil];
}
@try {
ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:filename];
NSInteger result = [archive deflateDirectory:directory relativeToPath:directory usingResourceFork:NO];
return result == zkSucceeded;
}
@catch (NSException *exception) {
if ([self fileExistsAtPath:filename]) {
[self removeItemAtPath:filename error:nil];
}
}
return NO;
}
パラメータは、圧縮するディレクトリ (およびその内容) へのdirectory
パスです。filename
パラメーターは、結果として必要な結果の zip ファイルへのパスです。