如何正确设置 minizip(Zlib 库)中 zipOpenNewFileInZip4 的 versionMadeBy 字段

问题描述 投票:0回答:1

我需要我的应用程序在 Windows、UNIX、Mac 等中正确压缩文件。之前我使用的是 Zlib 1.2.3,现在迁移到 1.3.1。我有对 zipOpenNewFileInZip4 的 API 调用,它有一个新字段 versionMadeBy。有没有人在跨不同平台的应用程序中成功地使用它。如果是这样,你能指导我吗

浏览过https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

由(2字节)制作的版本

    4.4.2.1 The upper byte indicates the compatibility of the file
    attribute information.  If the external file attributes 
    are compatible with MS-DOS and can be read by PKZIP for 
    DOS version 2.04g then this value will be zero.  If these 
    attributes are not compatible, then this value will 
    identify the host system on which the attributes are 
    compatible.  Software can use this information to determine
    the line record format for text files etc.  

    4.4.2.2 The current mappings are:

     0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
     1 - Amiga                     2 - OpenVMS
     3 - UNIX                      4 - VM/CMS
     5 - Atari ST                  6 - OS/2 H.P.F.S.
     7 - Macintosh                 8 - Z-System
     9 - CP/M                     10 - Windows NTFS
    11 - MVS (OS/390 - Z/OS)      12 - VSE
    13 - Acorn Risc               14 - VFAT
    15 - alternate MVS            16 - BeOS
    17 - Tandem                   18 - OS/400
    19 - OS X (Darwin)            20 thru 255 - unused

    4.4.2.3 The lower byte indicates the ZIP specification version 
    (the version of this document) supported by the software 
    used to encode the file.  The value/10 indicates the major 
    version number, and the value mod 10 is the minor version 
    number.  

我不完全确定我是否理解这个文档

zlib minizip
1个回答
0
投票

将高字节设置为外部属性(

external_fa
)来自的操作系统。如果属性为零,则只需将操作系统设置为零即可。

低字节是 PKZip 的原始版本。我认为没有人关注过它,但第 4.4.3 节有一个 PKZip 功能列表,作为版本号的函数。您可能会将其设置为 45。

© www.soinside.com 2019 - 2024. All rights reserved.