zlib:解压后的文件大小?

发布于 2024-09-06 08:46:01 字数 80 浏览 6 评论 0原文

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

I'm using zlib to decompress a file. I want to verify that there is enough disk space to unzip the file. Do the zip format and zlib provide facilities to determine the decompressed size of its contents?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪异←思 2024-09-13 08:46:01

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

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

If your file was compressed using the gzip format (RFC1952), then the last 4 bytes, the ISIZE field indicates the uncompressed file size mod 2^32. Therefore, provided that the original file was smaller than 4GB, you can determine its size by reading the last 4 bytes. Check the man pages for gunzip.

If ZLIB or raw Deflate format was used, you will have to decompress first to determine the uncompressed size.

來不及說愛妳 2024-09-13 08:46:01

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

{
FileFormatHeader(可选)x 字节
原始大小(4 或 8 字节)
压缩大小(可选)(4 或 8 字节)
HashSum(可选)(16 字节或不同数字[取决于哈希算法])

压缩数据
}

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

Just create a simple file structure for compressing:

{
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
}

Now you have all the information that you need for decompressing

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文