我想使用ZipKit压缩文件夹?
我似乎找不到ZipKit库中函数用法的好文档。 有人可以解释文件夹压缩的方法吗?
ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:filePath];
[archive deflateDirectory:param1 relativeToPath:param2 usingResourceFork:NO];
需要在param1和param2中传递什么?我在这里不理解函数调用?
如果有人能为它发布一个例子会很棒吗?
谢谢!
答案 0 :(得分:2)
Looking at the answer in this related question,这是一个很好的例子。
你的param1是要存档的文件夹(带有它的路径),相对路径可以是父文件夹。
NSString *zipFilePath = @"/Documents/zipped.zip";
ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:zipFilePath];
NSInteger result = [archive deflateDirectory:@"/Documents/myfolder" relativeToPath:@"/Documents" usingResourceFork:NO];
如果ZipKit的文档比the limited info it has更好,那就太好了。
答案 1 :(得分:0)
我使用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文件的路径。