解压压缩文件给" java.util.zip.ZipException:无法读取版本"或QUOT; java.util.ZipException无法读取本地头版本45 QUOT; [英] Unzipping zip file gives "java.util.zip.ZipException: Cannot read version" or "java.util.ZipException Cannot read local header version 45"
问题描述
我想只是提取正常的zip文件,但它一直失败。 这是我用我现在的code:
I would like just to extract a normal zip file, but it keeps failing. This is my code I'm using now:
private File downloadPath = new File(Environment.getExternalStorageDirectory() + "/Test/file.zip");
private File unzipLoc = new File(Environment.getExternalStorageDirectory() + "/Test/");
FileInputStream fin = new FileInputStream(downloadPath);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null)
{
FileOutputStream fout = new FileOutputStream(unzipLoc + ze.getName());
for (int c = zin.read(); c != -1; c = zin.read())
{
fout.write(c);
}
zin.closeEntry();
fout.close();
}
zin.close();
它未能对zin.getNextEntry()的一部分。 错误:java.util.zip.ZipException:无法读取版本 有任何想法吗? THX!
It fails on the 'zin.getNextEntry()' part. Error: java.util.zip.ZipException: Cannot read version Any ideas? Thx!
推荐答案
看起来你的zip文件是不是你的解压库更新。
Looks like your zip file is newer than your 'unzipping library'.
如果你读源:
<一个href="https://javapi.svn.$c$cplex.com/svn/trunk/JavApi_old/java.util.zip.ZipInputStream.cs">ZipInputStream (搜索新抛出:ZipException(不能读版本)的)
这表明你在检查zip文件的版本。然后看着维基百科的就说明这是需要解压zip的最低版本。
It shows you it checks the zip files version. Then looking at Wikipedia it shows this is the minimum version needed to extract the zip.
检查您的zip文件并重新保存您的压缩软件的低版本/再压缩它没有COM pression测试
或者更新您的邮编库(如您使用内部的android压缩库,你不能这样做)。
Alternately update your Zip library (which you can't do as your using the internal android zip library).
这篇关于解压压缩文件给&QUOT; java.util.zip.ZipException:无法读取版本&QUOT;或QUOT; java.util.ZipException无法读取本地头版本45 QUOT;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!