- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 apache commons-compress-1.6 库从 Android 上的 zip 存档中解压缩符号链接(symbolic link)时遇到了麻烦。
当我得到 ZipArchiveEntry 时,有一个名为 isUnixSymlink() 的方法告诉我该文件是否是符号链接(symbolic link),但它始终返回 false。
InputStream inputStream = new FileInputStream(archive);
ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(inputStream);
ZipArchiveEntry ze = null;
while ((ze = zipInputStream.getNextZipEntry()) != null) {
File path = new File("/tmp/user/folder", ze.getName());
byte[] extras = ze.getExtra();
boolean isSymlink = ze.isUnixSymlink();
我阅读了位于此处的文档:http://www.pkware.com/documents/casestudies/APPNOTE.TXT ,他们在“4.5 可扩展数据字段”一章中谈论额外信息。额外的应该开始
header id 有 2 个字节(在我的例子中应该是“0x000d UNIX”
还有2个字节的数据大小
但前两个字节总是 [85, 84],在我得到字节数组 [9, 0] 之后。
也许这就是 ZipArchiveEntry 无法返回良好 boolean 值的原因。有人可以给我一些关于那个案例的解释吗?
提前致谢。
最佳答案
我遇到了同样的问题。事实证明,ZipArchiveInputStream
带有以下注意事项(强调我的):
The ZipFile class is preferred when reading from files as ZipArchiveInputStream is limited by not being able to read the central directory header before returning entries. In particular ZipArchiveInputStream
- may return entries that are not part of the central directory at all and shouldn't be considered part of the archive.
- may return several entries with the same name.
- will not return internal or external attributes.
- may return incomplete extra field data.
- may return unknown sizes and CRC values for entries until the next entry has been reached if the archive uses the data descriptor feature.
虽然这个问题专门询问关于 ZipArchiveInputStream
的问题,但我认为我会分享切换到 ZipFile
为我解决了这个问题。
关于java - 从 Android 上的 ZipArchiveInputStream 解压符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20220256/
我是一名优秀的程序员,十分优秀!