我正在尝试使用Finder的内置存档功能在Java中提取Java文件.由于ZIP文件包含应用程序包,因此保留Unix文件权限(尤其是可执行标志)非常重要.
使用Finder提取ZIP文件时,将保留权限.所以我知道它们存放在那里的某个地方.
现在我的问题是:macOS如何在ZIP文件中存储Unix文件权限?不幸的是我在网上找不到任何关于此的信息.
解决方法:
权限的存储方式与其他Unixoid系统上的权限相同,例如Linux.
如果查看zip文件中的*目录标题,则对于存储在Zip文件中的每个文件都有一个名为“外部文件属性”的字段.该字段位于标题中的字节36处,长度为4个字节.
该字段中的最后两个字节包含macOS上的文件权限 – 准确地说,它是最后9位(最低有效9位).它们的含义就像传统的Unix文件权限一样.