2010-06-03 143 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. 您需要稍微多些工作。