0

ZipKit を使用してフォルダーを圧縮したいですか??

ZipKit ライブラリ内の関数の使用に関する適切なドキュメントが見つからないようです。フォルダの圧縮方法を説明できる人はいますか?

ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:filePath];
[archive deflateDirectory:param1 relativeToPath:param2 usingResourceFork:NO];

param1 と param2 には何を渡す必要がありますか??ここでの関数呼び出しがわかりません。

誰かがその例を投稿できれば素晴らしいでしょうか?

ありがとうございました!

4

2 に答える 2

2

この関連する質問 の回答を見ると、これは良い例です。

param1 はアーカイブするフォルダー (そのパスを含む) であり、相対パスは親フォルダーである可能性があります。

NSString *zipFilePath = @"/Documents/zipped.zip";
ZKFileArchive *archive = [ZKFileArchive archiveWithArchivePath:zipFilePath];
NSInteger result = [archive deflateDirectory:@"/Documents/myfolder" relativeToPath:@"/Documents" usingResourceFork:NO];

ZipKit に含まれる限られた情報よりも優れたドキュメントがあれば、それは素晴らしいことです。

于 2013-05-09T20:27:09.253 に答える
1

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 ファイルへのパスです。

于 2013-05-09T20:27:25.273 に答える