代码之家  ›  专栏  ›  技术社区  ›  Adrian Zanescu

使用GZipStream追加到压缩文件

  •  4
  • Adrian Zanescu  · 技术社区  · 14 年前

    我试图使用GZipStream来编写一些应用程序跟踪(它们在生产中往往会增长到很大的规模)。因此,在本例中,我需要能够打开现有文件并使用GZipStream将其附加到该文件。在我们试图解压文件之前,一切似乎都很正常。似乎在解压时,GZipStream只读取第一个数据块,然后其行为就像到达了EOF(即使文件包含更多的数据)。奇怪的是,当使用windows或Winrar打开文件时,所有数据似乎都已存在并正确提取。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Igor Be    12 年前

    我也遇到过同样的问题。 http://zlib.net/pigz/

        2
  •  2
  •   Jack Davidson    7 年前

    我花了很长时间才弄明白。标准C#实现GZipStream有一个错误,它不支持连接的gzip文件。它将只解压缩从连接创建的gzip文件的第一部分,并在之后报告流结束。

    下面是一个适用于特定gzip文件的示例:

    new StreamReader(new ICSharpCode.SharpZipLib.GZip.GZipInputStream(Console.OpenStandardInput()));