2013-04-06 58 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中修復。