我使用java.util.zip
来提取zip文件,但是当我在特定的zip文件上运行时,我得到了
java.util.zip.ZipException: error in opening zip file
继续,我使用Windows资源管理器打开zip文件,但它没有看到任何内容。如果我使用windows中内置的抽取实用程序,则说zip文件无效。
我使用7zip解压缩它并且工作正常,所以我打开它并注意到:有一个没有文件名的文件夹。
我不知道如何打开此zip文件。我甚至不知道你可以拥有没有字符的文件名,或者有一些应用程序是以这样的方式编写的......
我可以尝试哪些解决方案?
我想到的一个解决方案是只执行7zip并让它处理文件,因为它仍然有效,但我必须将7zip文件包含在应用程序中,因为最终用户可能没有7zip在他们的机器上。
答案 0 :(得分:1)
Windows不允许空文件夹名称或仅包含空格的文件夹名称,而7zip将允许您在zip中创建文件夹,只包含文件夹名称的空格。
您需要检查ZipEntry返回的文件名中的空字符串。
private static String fixFileName(String filename)
{
String[] sArray = filename.split("\\s+");
String retval = "";
for (String s : sArray)
{
if (s.trim().equals(""))
{
s = String.valueOf(System.currentTimeMillis());
}
retval += s;
}
return retval;
}