以下解压缩功能并不适用于所有 zip 文件。
我的zip文件模式如下-
- Zip 文件包含一个 xml 文件和一个文件夹(名称 - “images”)。
- xml 文件的名称与 zip 文件名相同。
- 文件夹(“images”)可能包含也可能不包含任何文件。
在将 xml 文件放入 zip 文件之前,我已对其进行了验证。
对于某些 zip 文件,它会在该行引发异常 -
FileOutputStream fout = new ileOutputStream(path.substring(0,path.length()-4)+"/"+filename);
功能是:
public boolean unZip(String path)
{
InputStream is;
ZipInputStream zis;
try
{
String filename;
is = new FileInputStream(path);
zis = new ZipInputStream(new BufferedInputStream(is));
ZipEntry ze;
byte[] buffer = new byte[1024];
int count;
while ((ze = zis.getNextEntry()) != null)
{
filename = ze.getName();
if (ze.isDirectory()) {
File fmd = new File(path.substring(0,path.length()-4)+"/"+filename);
fmd.mkdirs();
continue;
}
FileOutputStream fout = new FileOutputStream(path.substring(0,path.length()-4)+"/"+filename);
while ((count = zis.read(buffer)) != -1)
{
fout.write(buffer, 0, count);
}
fout.close();
zis.closeEntry();
}
zis.close();
}
catch(IOException e)
{
e.printStackTrace();
return false;
}
return true;
}
最佳答案
这个方法效果很好。这是在 Linux 平台中创建 zip 时的权限问题。但是当我更改文件权限时,功能开始正常工作。
关于java - Android解压功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24360476/