我只想提取一个普通的 zip 文件,但它总是失败。
这是我现在使用的代码:
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:无法读取版本
有任何想法吗?谢谢!
看起来您的 zip 文件比“解压缩库”新。
如果您阅读了来源:
Zip输入流 https://javapi.svn.codeplex.com/svn/trunk/JavApi_old/java.util.zip.ZipInputStream.cs(搜索new ZipException("无法读取版本"))
它显示它检查 zip 文件版本。然后看着维基百科 http://en.wikipedia.org/wiki/ZIP_%28file_format%29#File_headers它显示这是提取 zip 所需的最低版本。
检查您的 zip 文件并使用较低版本的 zip 软件重新保存/再次压缩而不压缩以进行测试
或者更新您的 Zip 库(您不能这样做,因为您使用内部 android zip 库)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)