iOS/MacOS 压缩框架将是最快的并且不会导致额外的膨胀
回复:https://developer.apple.com/documentation/compression?language=objc
虽然它不支持创建基于“Zip”的内部格式化文件,但它支持多种压缩算法。
Apple 建议使用COMPRESSION_ZLIB:
zlib 压缩算法,推荐用于跨平台压缩。
有许多(解)压缩工具可以解压缩基于 zlib 原始文件的文件,但为了使其“更容易”,您可以包含一个标头,以便 gzip(Windows、macOS 和 Linux)可以处理它们没有进一步的变化。 (您也可以在文件中添加基于 CRC 的页脚,但真的不需要,除非您已经在比较 zip 文件的移动和服务器 CRC...)
带头文件的原始 zlib 示例:
using (var fileOriginal = new FileStream(inputFile, FileMode.Open))
using (var fileCompressed = new FileStream(outputZip, FileMode.Create))
using (var compressionStream = new Compression.CompressionStream(fileCompressed, System.IO.Compression.CompressionMode.Compress, CompressionAlgorithm.Zlib, true))
{
var header = new byte[] { 31, 139, 8, 0, 0, 0, 0, 0, 0, 0 }; // \x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00
fileCompressed.Write(header, 0, header.Length);
fileOriginal.CopyTo(compressionStream);
}