【发布时间】:2021-08-16 05:53:03
【问题描述】:
我想知道是否有一种方法可以在不使用第三方库且仅使用来自 .
的内容的情况下压缩文件我正在尝试使用 NSData CompressDataUsingAlgorithm:NSDataCompressionAlgorithmZlib 压缩数据,然后使用 NSData writeToURL:@"Test.zip"。
此方法创建一个大小合适但无法被任何来源读取/存档的压缩文件。我知道这一点,因为我在 finder 中使用了存档功能并获得了一个可以存档的 zip 存档。
所以我觉得我这样做不正确,那么还有其他方法可以压缩文件夹吗?还是在写入我丢失的文件之前还有另一个步骤?
谢谢
编辑:添加我的代码
NSFileWrapper *dirWrapper = [[NSFileWrapper alloc] initWithURL:url options:0 error:&tep];
NSData *dirData = [dirWrapper serializedRepresentation];
NSData *gzData = [dirData compressedDataUsingAlgorithm:NSDataCompressionAlgorithmZlib error:&tep];
[gzData writeToURL:Url2 atomically:YES];
【问题讨论】:
-
我不是在展示代码,我是在展示类函数名称。我不明白你为什么要回复这样的评论。如果在 sn-p 中编写我的所有代码将有助于回答它,我会很乐意这样做。但你不必对此无礼。
-
不是真正的 cansyrup,我之前遇到过这个问题,并尝试了 libz 的实现,最终在存档中得到了一个包含数据本身的文件,而不是实际文件,因为我有那个文件包装器组件涉及。因为MacOS的finder里有压缩功能,所以一定有办法。
-
这能回答你的问题吗? What does a zlib header look like?
-
谢谢 Willeke,这可能会帮助我。
标签: objective-c macos