在创建之前估计 ZipArchive 的大小
Posted
技术标签:
【中文标题】在创建之前估计 ZipArchive 的大小【英文标题】:Estimate ZipArchive size before creation 【发布时间】:2018-02-11 07:01:13 【问题描述】:鉴于我知道输入的文件大小,有什么方法可以估计ZipArchive
s 的输出大小(在创建之前)?我在文档中找不到关于比率的明确定义:例如1mb 压缩到 800kb 或其他大小。
【问题讨论】:
【参考方案1】:几乎不可能估计它,因为它取决于添加的文件的内容。如果添加的文件包含许多相同的字符,则压缩率会很高。如果有很多不同的字节,压缩率会很低。
它也可能取决于无损数据压缩。与另一种未知的二进制格式相比,某些媒体格式的压缩率可能更高(以可接受的方式)。
【讨论】:
【参考方案2】:正如 Syscall 提到的,这真的很难估计。
如果您需要此功能,您可以使用旧数据来估算新的 zip。
例如:
您想要创建资产文件夹的备份。您可以跟踪您的创建时间并保存此结果。
之后,您知道您的第一次跑步需要(假设)1.5 分钟。然后,您可以根据要压缩的数据的增长来估计下一次运行。可能 +10% 或 +20%
希望对你有帮助
【讨论】:
有趣的解决方案,但如果不可能,那就不可能了。估计大小并不是什么大问题。以上是关于在创建之前估计 ZipArchive 的大小的主要内容,如果未能解决你的问题,请参考以下文章
PHP:使用 ZipArchive 创建 zip 文件时出现错误 (500)