java中用ZipOutputStream进行压缩文件,如何让生成的压缩文件的ZipEnity为只读的

2024-12-31 15:00:12
推荐回答(1个)
回答1:

只读属性从属于文件系统的种类,比如NTFS、FAT、EXT3等的实现方法都不一样。
zip格式标准中,没有规定怎么去记录文件属性。就是说,即使设了属性,解码器也不强制需要遵守,不一定会还原成只读文件。

目前可还原只读属性的解压器都是遵守win/dos下的某种“潜规则”,把属性放在扩展区块extra field中。Java可以用ZipEntry.setExtra设置这些扩展驱。
可以自己用压缩一个只读文件的zip,然后用ZipEntry.getExtra照抄分析出这种潜规则。