2013-04-06 56 views
0

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

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(); 
    } 
} 

回答

1

我想问题是在GZipLib这里。我用DotNetZip代替,现在文件变小了。它可以下载here

-2

什么可能我是做错了什么?

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

+2

如果我手动压缩文件系统中的相同文件,它会变小。 – 2013-04-07 13:26:33

0

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

它已在.NET 4中修复。