【发布时间】:2023-04-04 20:05:02
【问题描述】:
我遇到了一个非常晦涩的问题。 如果我在 Mavericks 上压缩一些东西(右键单击 -> 压缩),它可以在 mac、windows 和 linux 上解压缩,它工作正常并且所有文件都存在。
当我在 iOS 设备上使用“ZipArchive”或“SSZipArchive”解压缩时,同一个文件总是损坏。
如果我通过终端压缩文件,它可以在 ios 设备上正常解压缩。
相关文件是一个 50KB 的小视频。我尝试设置不同的标志,看看是否可以通过终端重新创建问题,以找出导致问题的标志,但我找不到原因。
我用最大压缩和最小压缩压缩文件,看看是否是这个原因,我还测试了压缩文件,看看它是否损坏或有任何隐藏字符。
为了让它更奇怪,这些 zip 通常每个可以容纳大约 50 个视频文件,而我有大约 23 个 zip。直到 2 周前,解压缩代码一直运行良好。在过去的 2 周中,我发现了 7 个损坏的文件,并且损坏是一致的 - 总是相同的文件总是损坏的。
损坏的文件通常比工作文件小几 kb,无法打开或强制播放。
它们最初都是使用小牛压缩的,但没有任何改变。
这个问题现在更多的是关于事实调查,因为我可以通过终端压缩文件,但我想知道是什么导致了这个问题,所以我以后可以避开它。
谢谢
【问题讨论】:
-
确保您尝试在您的设备上提取的 ZIP 文件实际上与您可以在其他平台上提取的那些 ZIP 文件相同 - 也许您的交付机制已损坏。
-
是的,使用“坏”机制提取文件并将其与使用“好”机制从同一个 zip 中提取的相同文件进行比较,看看有什么不同。
-
它们是相同的,我们甚至尝试将它们自己添加到设备中,我们仍然面临同样的问题。我们最初认为他们正在检查导致问题的 SSL。
标签: ios objective-c cocoa-touch compression zip