2010-06-03 137 views
0

我有一個X字節文件。例如,我想以32Kb的大小壓縮它。 有沒有可以做這個的lib嗎?壓縮文件

我用德爾福的Zlib,但我只是可以壓縮一個完整的文件在新的壓縮文件。

Tranks很多, 佩德羅

+0

您打算編碼哪種編程語言? – 2010-06-03 03:02:31

+0

既然你提到德爾福我假設你的目標是Windows。我不確定這是否符合您的需求,但NTFS支持開箱即用的透明文件壓縮。它已經將壓縮文件分成小塊,以便隨機訪問性能不會受到太大影響。 – 2010-06-03 04:35:15

+0

可能是德爾福。 – 2010-06-03 23:46:20

回答

1

你爲什麼不使用一個簡單的標題來確定塊的邊界?這樣考慮:

  1. 讀取固定量從輸入數據到緩衝器(比方說32 KIB)
  2. 壓縮與一個「新創建的」緩衝放氣流(ZLIB的壓縮算法隱含)。
  3. 寫壓縮後的大小到輸出流
  4. 寫壓縮數據的輸出流
  5. 去,直到你達到最終的文件第1步。

優點:

  1. 您可以在多線程的方式,甚至解壓任何塊。
  2. 數據損壞僅限於損壞的塊。其餘數據可以恢復。

缺點:

  1. 你損失的大部分上下文信息(數據之間的相似性)。所以,你的壓縮比會更低。
  2. 您需要稍微多些工作。