【问题标题】:Is there a way to get the expanded gzip file size without actually expanding?有没有办法在不实际扩展的情况下获得扩展的 gzip 文件大小?
【发布时间】:2010-01-07 06:47:42
【问题描述】:

由于扩展大型 gzip 文件需要很长时间(有时超过半分钟),因此我想在开始扩展之前知道扩展后的大小(用于进度报告)。有没有办法在不实际扩展的情况下知道它?

更新

对于大于 4G 字节(扩展大小)的文件,如果不实际扩展 gzip 文件,就无法确定大小。但是,对于小于 4G 字节(扩展大小)的文件,实际扩展大小存储为 gzip 文件的最后 4 个字节,可以轻松检索:

(1..4).inject(0) do |v, i| 
  v += IO.read(file_name, 1, original_size - i)[0] * (2**8) ** (4 - i)
end

【问题讨论】:

标签: ruby gzip


【解决方案1】:

我已经找到了解决方案,只是想结束这个问题。上面已经更新了。

【讨论】:

    【解决方案2】:

    我认为您无法获得确切的大小,因为这需要知道文件中各种字符串的实际频率,并且如果不扫描文件就无法做到这一点。你能进入实际的解压函数并让它指示它通过输入有多远(相对于它有多远到输出)?

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多