1

Objective Zip を使用して、iOS アプリでいくつかのファイルを圧縮しています。

パスワードで保護し、通話をメモしたい...

- (ZipWriteStream *) writeFileInZipWithName:(NSString *)fileNameInZip fileDate:(NSDate *)fileDate compressionLevel:(ZipCompressionLevel)compressionLevel password:(NSString *)password crc32:(NSUInteger)crc32;

...CRC32 値が必要です。

これについての専門家ではなく、ウィキペディアなどで CRC について読んだことがありますが、ここにどの値を入力すればよいかまだわかりません。

ゼロにできますか?ファイルのバイト数であるべきですか?任意の乱数?

ヘルプとガイダンスに感謝します。

ありがとう

4

1 に答える 1

0

最初に、圧縮するファイルの CRC 値を計算する必要があります。

NSData *data = [[NSData alloc] initWithContentsOfFile:@"/path/to/your/file/to/zip"];
unsigned long result = crc32(0, data.bytes, (unsigned int)data.length);

新しい Zip を作成し、ファイルを追加して、CRC 結果を渡します。

ZipFile *zipFile= [[ZipFile alloc] initWithFileName:@"/tmp/File.zip" mode:ZipFileModeCreate];
ZipWriteStream *stream= [zipFile writeFileInZipWithName:@"File.name" fileDate:[NSDate date] compressionLevel:ZipCompressionLevelDefault password:@"your_password"] crc32:result];
[stream writeData:data];
[stream finishedWriting];

[zipFile close];

zip.c (MiniZip) の次の行がコメント解除されていることを確認してください。

//#define NOCRYPT

また、ファイルcrypt.hがプロジェクトに追加されていることも確認してください。

于 2015-03-09T10:13:22.320 に答える