2014-06-11 186 views
0

我有一個超級奇怪的問題。我使用SharpZipLib庫來生成.zip。我發現.zip的大小比我的文本文件的總大小要大一些。我不知道什麼是錯的。我也試圖谷歌,但我找不到任何與我的情況有關。這是我的代碼:爲什麼在SharpZipLib中壓縮文件的大小比未壓縮的大?

protected void CompressFolder(string[] files, string outputPath) 
    { 
     using (ZipOutputStream s = new ZipOutputStream(File.Create(outputPath))) 
     { 
      s.SetLevel(0); 
      foreach (string path in files) 
      { 
       ZipEntry entry = new ZipEntry(Path.GetFileName(path)); 
       entry.DateTime = DateTime.Now; 
       entry.Size = new FileInfo(path).Length; 
       s.PutNextEntry(entry); 
       byte[] buffer = new byte[4096]; 
       int byteCount = 0; 
       using (FileStream input = File.OpenRead(path)) 
       { 
        byteCount = input.Read(buffer, 0, buffer.Length); 
        while (byteCount > 0) 
        { 
         s.Write(buffer, 0, byteCount); 
         byteCount = input.Read(buffer, 0, buffer.Length); 
        } 
       } 
      } 
     } 
    } 
+2

你壓縮文本或二進制/圖片/文字文件等? 正常情況下,如果您的原始文件已被壓縮,則壓縮會導致稍大的文件 –

+0

如果壓縮壓縮文件,結果會比以前更大。你的文件已經被壓縮了嗎?在回答之前先看看。 – Will

+0

我的文件是文本文件。我試圖手動壓縮,zip文件的大小比我從SharpZipLib獲得的zip文件小很多。 – user1412944

回答

6

0的壓縮級別信號表示SharpZipLib存儲而不是壓縮。

較大尺寸是因爲郵編次顯微組織的(文件名等)

那麼您的解決方案是將級別更改爲高,即:

s.SetLevel(9); 
+0

謝謝,它的作品! – user1412944

相關問題