0

我压缩上传.pdf的文件并将它们保存到服务器的文件系统。一切正常,但文件变大了,从 30kb 到 48kb。我可能做错了什么?这是我压缩上传文件的代码部分:

FileStream sourceFile = System.IO.File.OpenRead(filePath);
FileStream destFile = System.IO.File.Create(zipPath);
GZipStream compStream = new GZipStream(destFile, CompressionMode.Compress);

try
{
    int theByte = sourceFile.ReadByte();
    while (theByte != -1)
    {
        compStream.WriteByte((byte)theByte);
        theByte = sourceFile.ReadByte();
    }
}
4

3 回答 3

1

我想问题出GZipLib在这里。我DotNetZip改用了,文件现在按预期变小了。可以在这里下载。

于 2013-04-10T23:11:32.313 回答
0

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

它已在 .NET 4 中修复。

于 2014-06-25T09:22:09.443 回答
-2

我可能做错了什么?

PDF 文件标准已经提供了不同部分的压缩。所以你得到的可能是一个已经压缩的文件。您知道当您尝试压缩压缩文件时会发生什么吗?这就像你试图压缩一个 ZIP 文件一样:有点无用的努力。

于 2013-04-07T13:07:14.770 回答