【问题标题】:Creating ZIP archive compression level (libzip)创建 ZIP 存档压缩级别 (libzip)
【发布时间】:2014-04-28 14:29:49
【问题描述】:

我正在尝试使用 libzip 压缩文件,我似乎成功了,但我似乎无法找到改变压缩级别的方法(zip 工具支持从 1(最快压缩速度)到 9(最小存档)的值)我必须重新实现。有办法吗?

【问题讨论】:

    标签: c++ compression libzip


    【解决方案1】:

    参见ZIP_CM_*zip.hstruct zip_stat 及其comp_method 字段中的定义。

    【讨论】:

    • zip_set_file_compression(zipArchivePtr, fileIndex, ZIP_CM_*, 0) 似乎确实是这样(其中 fileIndex 是从 zip_file_add 检索的),但目前只有 ZIP_CM_STORE 产生不同的存档大小所有 [ZIP_CM_SHRINK, ZIP_CM_DEFLATE] 产生相同大小的存档。感谢您指出文档中没有其他标志。
    • 这很奇怪。它使用 zlib,我无法相信 zlib 会忽略压缩级别。我会检查使用 zlib 的休闲 zip 工具是否会为您的数据生成不同的存档。我只评估了 libzip,我决定使用 minizip,因此我无法检查您的问题是否可重现。
    • minizip 确实使用 zlib,然后压缩级别完美运行。 libzip 是一个单独的库,我目前也只评估它。到目前为止,我也更喜欢 minizip。
    • @typical Surprisign,libzip 包含 zlib.h,所以我假设它使用 zlib。很抱歉造成误导。
    猜你喜欢
    • 2013-03-01
    • 2010-11-15
    • 2015-06-16
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多