zlib:解压缩文件大小?

时间:2010-06-21 02:40:44

标签: zlib compression

我正在使用zlib解压缩文件。我想验证是否有足够的磁盘空间来解压缩文件。 zip格式和zlib是否提供了确定其内容的解压缩大小的工具?

2 个答案:

答案 0 :(得分:0)

只需创建一个简单的压缩文件结构:

{
FileFormatHeader (optional) x bytes
OriginalSize (4 or 8 bytes)
CompressedSize (optional) (4 or 8 bytes)
HashSum (optional) (16 bytes or different number [depends on hash algorithm])

CompressedData
}

现在您拥有解压缩所需的所有信息

答案 1 :(得分:0)

如果您的文件是使用gzip格式(RFC1952)压缩的,那么最后4个字节,ISIZE字段表示未压缩文件大小mod 2 ^ 32。因此,如果原始文件小于4GB,则可以通过读取最后4个字节来确定其大小。检查手册中的gunzip。

如果使用ZLIB或原始Deflate格式,则必须先解压缩以确定未压缩的大小。