Ano*_*oop 4 java zipoutputstream
我创建了一个小应用程序来从磁盘读取一些文件并使用 java.util.zip.ZipOutputStream 对其进行压缩。已成功创建 zip 文件。但在 Windows 中,当我尝试打开它/解压它时,收到错误消息,例如“Windows 已阻止访问这些文件以帮助保护您的计算机”。我只压缩 csv 文件。但如果我尝试使用 java 本身的 zipinputstream 类解压缩,它会正确解压缩它。任何人都可以解释一下吗?
问候,阿努普
小智 6
我知道这篇文章是几年前的。然而,我在第一次使用 java.util.zip 时遇到了非常相似的问题,这篇文章引导我解决了这个问题。
Anoop 关于绝对路径的最后评论帮助我找到了问题。由于我在搜索几个帖子时没有看到答案,所以我想将其发布在这里 - 实际上是回应罗兰的最后一个问题:
问题是当我将 ZipEntry(file) 与完全限定的路径/文件而不是相对路径一起使用时。我无法使用任何 Windows 操作系统实例打开生成的 ZIP。不过,我可以用 Java 再次提取该文件。直到我用 7zip 打开 zip 时,我才意识到这个问题。result.zip 文件中的第一个文件夹是“D:”。我的目录是我的D盘下的一条很长的路径。因此,当打开“Results.zip”文件时,单击 zip 文件(来自 7zip)中的目录树后我会看到以下内容: Results.zip\D:\Apps\vertigo\instance5\runtime\myManager\discoveryResources\数据
“data”目录实际上保存了我压缩的所有文件/目录。
当我从数据目录中删除路径时,Results.zip 以“data”而不是“D:”开头。该文件可以使用 Windows 7、2012 等打开。
希望它对将来的人有所帮助。
谢谢,-克里斯
最后我发现了问题所在。这和路径有关。这真的很有趣,但是如果您给出要压缩到 zipoutputstream 的文件的绝对路径,则会发生此错误。我尝试使用相对路径和宾果!有效。因此,我在压缩之前做了一些工作,并将文件的父级指向当前工作目录,然后进行压缩。感谢大家的回复。
| 归档时间: |
|
| 查看次数: |
17790 次 |
| 最近记录: |