代码之家  ›  专栏  ›  技术社区  ›  Andreus asmeurer

gz文件的集合在非常特定的偏移量处被非常少量的字节损坏

  •  1
  • Andreus asmeurer  · 技术社区  · 9 年前

    我有大量的文件,都是相同的文件格式,为了节省空间,有时用gzip压缩。我正在整理档案以消除重复。

    对于大量的重复文件(一对Gzip文件,一对常规文件),它们的差异为<20字节,从少量文件偏移量中的一个开始(一个偏移量是从文件开始的313656字节;另一个更常见的偏移量是176287字节)。文件大小从1MB到200MB不等,未压缩。

    是否有人知道有一种机制可以创建这种特定的损坏模式,我可以(a)在将来避免这种模式,并且(b)希望使用它来选择文件的“正确”(最有可能是未损坏的)版本?

    1 回复  |  直到 9 年前
        1
  •  1
  •   Mark Adler    9 年前

    当您解压该对的gzip成员时,您会看到与该对中已解压的其他成员有几个字节不同?如果是这样,那么下一个问题是:gzip解压缩是否在没有错误消息的情况下工作?如果是这样,那么gzip文件末尾的CRC-32值以及未压缩的长度被检查为ok。在这种情况下,gzip文件是您应该保留的文件。

    我无法知道或猜测是什么导致了未压缩文件的损坏。