gpt4 book ai didi

java - Windows XP 阻止我的程序创建的 zip 文件

转载 作者:可可西里 更新时间:2023-11-01 09:38:56 25 4
gpt4 key购买 nike

我有以下 java 代码来创建一个 zip 文件。该文件在 Linux 上运行良好,但 Windows XP 的 native 提取器阻止了它。建议的解决方法(转到文件属性并取消阻止)也不起作用。我已经在网上阅读了类似的问题,并在 stackoverflow 上阅读了一篇关于此的类似帖子,但这些解决方案都不适合我。关于可能导致问题的任何想法。

ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
ZipOutputStream zipFile = new ZipOutputStream(byteOut);
loop {
byte [] tempData = "some data".getBytes("UTF-8");
ZipEntry entry = new ZipEntry("blah.txt"); //no path here
entry.setSize(tempData.length); //read somewhere that this might solve the issue, didn't work
entry.setTime((new Date()).getTime()); //tried with and without this.. this is probably redundent since putNextEntry sets the time to current too.
zipFile.putNextEntry(entry);
zipFile.write(tempData);
zipFile.closeEntry();
}
zipFile.close();

附言

  1. 我的 Windows 机器上没有安装 Windows Defender。
  2. 我已经尝试设置 zip 条目的大小,但它仍然不起作用。
  3. zip 条目中没有指定绝对路径,路径中也没有斜线。

谢谢!

编辑 1:是的,我在装有 Windows XP 的其他机器上进行了测试,结果相同。我下载了 7zip,但不知道如何检查压缩方法。如果有人可以告诉我执行此操作的步骤,我可以将压缩方法添加到评论中。

编辑 2:我使用 Windows native 提取向导,它显示“Windows 已阻止访问这些文件以帮助保护您的计算机”。此消息下方有一个链接,内容为“Windows 阻止标记为不受信任的文件。为什么这些文件被阻止以及如何打开它们”。单击该链接可为您提供不起作用的解决方法(文件属性 -> 取消阻止)。

最佳答案

刚刚弄清楚了这个问题,我的条目文件名中有一个带有 : 的时间戳,Windows 被它吓坏了。

ZipEntry entry = new ZipEntry("blah.txt"); <- 时间戳在这里,认为这不重要所以没有在这里复制真实姓名。

关于java - Windows XP 阻止我的程序创建的 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com