Java 如何处理包含空文件名文件的zip文件
我使用Java 如何处理包含空文件名文件的zip文件,java,unzip,zipfile,Java,Unzip,Zipfile,我使用java.util.zip来提取zip文件,但是当我在特定的zip文件上运行它时,我会得到 java.util.zip.ZipException:打开zip文件时出错 接下来,我使用windows资源管理器打开zip文件,但它什么也看不到。如果我使用windows内置的提取实用程序,它会说zip文件无效 我用7zip解压了它,效果很好,所以我打开它,注意到:有一个没有文件名的文件夹 我不知道如何打开这个zip文件。我甚至不知道你可以有没有字符的文件名,或者有这样的应用程序编写的方式,认
java.util.zip
来提取zip文件,但是当我在特定的zip文件上运行它时,我会得到
java.util.zip.ZipException:打开zip文件时出错
接下来,我使用windows资源管理器打开zip文件,但它什么也看不到。如果我使用windows内置的提取实用程序,它会说zip文件无效
我用7zip解压了它,效果很好,所以我打开它,注意到:有一个没有文件名的文件夹
我不知道如何打开这个zip文件。我甚至不知道你可以有没有字符的文件名,或者有这样的应用程序编写的方式,认为这
我可以尝试哪些解决方案
我想到的一个解决方案是只执行7zip并让它处理文件,因为它无论如何都可以工作,但我必须在应用程序中包含7zip文件,因为最终用户的机器上可能没有7zip。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;
}
看起来名称只是空白。你为什么要为这个例外的案子寻找令人讨厌的解决办法?