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

ZipOutputStreamout=newZipOutputStream(newFileOutputStream(filePath));out.putNextEntry... ZipOutputStream out = new ZipOutputStream(new FileOutputStream(filePath));
out.putNextEntry(new ZipEntry("test.txt"));
out.write(str.getBytes());
out.flush();
out.closeEntry();
out.close();
原本是直接将byte数据进行生成压缩文件的,这样的话有没有方法将生成的压缩文件中的某个文件设置为只读的?
展开
 我来答
百度网友9308069
2011-12-05 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1943万
展开全部
只读属性从属于文件系统的种类,比如NTFS、FAT、EXT3等的实现方法都不一样。
zip格式标准中,没有规定怎么去记录文件属性。就是说,即使设了属性,解码器也不强制需要遵守,不一定会还原成只读文件。

目前可还原只读属性的解压器都是遵守win/dos下的某种“潜规则”,把属性放在扩展区块extra field中。Java可以用ZipEntry.setExtra设置这些扩展驱。
可以自己用压缩一个只读文件的zip,然后用ZipEntry.getExtra照抄分析出这种潜规则。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式