我需要我的应用程序在 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.
我不完全确定我是否理解这个文档
将高字节设置为外部属性(
external_fa
)来自的操作系统。如果属性为零,则只需将操作系统设置为零即可。
低字节是 PKZip 的原始版本。我认为没有人关注过它,但第 4.4.3 节有一个 PKZip 功能列表,作为版本号的函数。您可能会将其设置为 45。