Java:`A`以编程方式创建zip时缺少存档属性
我们正在处理解压缩库/实用程序,它使用属性检查zip中是否存在目录/文件 问题是,我们无法在创建时为zip设置存档位。当我们以编程方式创建zip时,它也会清除以前的属性 我们将尝试使用下面提到的步骤设置存档位,但到目前为止还没有得到预期的结果:Java:`A`以编程方式创建zip时缺少存档属性,java,zip,zipfile,7zip,Java,Zip,Zipfile,7zip,我们正在处理解压缩库/实用程序,它使用属性检查zip中是否存在目录/文件 问题是,我们无法在创建时为zip设置存档位。当我们以编程方式创建zip时,它也会清除以前的属性 我们将尝试使用下面提到的步骤设置存档位,但到目前为止还没有得到预期的结果: 1. Parse each zip entry and getExtra byte[]. 2. Use Int value=32 and perform bitwise 'OR' operation. 3. setExtra byte[] after '
1. Parse each zip entry and getExtra byte[].
2. Use Int value=32 and perform bitwise 'OR' operation.
3. setExtra byte[] after 'OR' operation.
添加更多详细信息:
我们尝试了以下方法,但这个问题仍然没有解决
setAttribute()
方法,但在创建zip时,获取属性会被重置。
Files.setAttribute(文件“dos:archive”,true)
File.copy()
将与文件关联的文件属性复制到目标文件,但未成功。即使现有属性也不会保留到目标文件中。
Files.copy(路径、路径、StandardCopyOption.copy\u属性)
ZipEntry.setExtra(字节[])
。
在线发现一些信息,java没有任何直接方法来设置属性,但根据一些在线文章,我们发现额外的字段用于设置unix和MS DOS文件属性上的文件权限。这是一个未记录的字段,我们在网上没有找到任何可靠的信息。基本上,最初的2个字节用于unix,最后的2个字节用于DOS文件属性。我们尝试用不同的值设置DOS文件属性。
ZipEntry.setExtra(字节[])
-为条目设置可选的额外字段数据import java.nio.file.Files;
import java.nio.file.Path;
File theFile = new File("yourfile.zip");
Path file = theFile.toPath();
Files.setAttribute(file, "dos:archive", true);
请参阅:我们已经尝试过这个方法,但没有成功。setAttribue()在文件系统上工作,但在创建zip时,zip实用程序会清除属性标志。需要输入如何在zip系统上设置存档/额外属性。问题是在创建zip时,文件属性被重置。我不明白。此功能是否在您的系统上工作?1它独立于zip。2,您必须在创建zip文件后执行此操作(之后=所有内容都已关闭)。如果它不起作用,那么OS(不可写目录?)还有另一个问题。