如何获取 LZMA2 文件 (.xz / liblzma) 的未压缩大小
我正在寻找一种方法来获取使用 xz 实用程序压缩的 LZMA2 / .xz 文件的未压缩流大小。
我使用 Windows/Linux 中的 liblzma 来完成此任务,所以我想我正在 liblzma 中寻找一些 C/C++ API 来完成此任务。
I'm looking for a way to get the uncompressed stream size of an LZMA2 / .xz file compressed with the xz utility.
I'm using liblzma from Windows/Linux for this task, so I guess I'm looking for some C/C++ API in liblzma that will do the trick.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想我已经找到了解决方案。
这是一个非常粗糙的代码示例,但似乎工作正常。
我假设我有一个 do_mmap() 函数,它将整个文件以只读方式映射到内存中,并返回映射的总大小。
这自然可以适应使用 read/fread/ReadFile 或任何其他文件 API。
I think I've found a solution.
This is a very crude code sample, but seems to work fine.
I'm assuming I have a do_mmap() function that maps the entire file as read-only into memory, and returns the total size mapped.
This can naturally be adapted to use read/fread/ReadFile or any other File API.
从 sourceforge 下载源代码看了这里,我从主头文件LzmaLib.h中引用了这个,
看起来
destLen
是未压缩的数据的大小。Having downloaded the source from sourceforge and had a look here, I quoted this from the main header file LzmaLib.h
It looks that
destLen
is the size of the data that is uncompressed.