3

我使用 .Net 的 GZipStream 类跟踪我正在压缩的文件的原始大小,看起来我认为我正在压缩的文件的大小增加了。那可能吗?

这就是我进行压缩的方式:

Byte[] bytes = GetFileBytes(file);

using (FileStream fileStream = new FileStream("Zipped.gz", FileMode.Create))
{
    using (GZipStream zipStream = new GZipStream(fileStream, CompressionMode.Compress))
    {
        zipStream.Write(bytes, 0, bytes.Length);
    }
}
4

2 回答 2

4

是的,它可以。它已在 .NET 4 中修复

System.IO.Compression..::.DeflateStream 和 System.IO.Compression..::.GZipStream 类的压缩算法得到了改进,因此已经压缩的数据不再膨胀。这导致更好的压缩比。此外,已删除压缩流的 4 GB 大小限制。

检查:GZipStream/DeflateStream 在压缩时增加文件大小

还要在这里查看 SO:GZipStream 和 DeflateStream 产生更大的文件

于 2010-10-19T23:06:01.163 回答
0

另一个原因可能是你.git在压缩时包含了文件夹,当你开发和使用 git 时它会膨胀。

对我来说,排除.git解决了这个问题。

于 2019-03-20T16:34:17.950 回答