当我尝试解压缩.xlsx文件时,我收到标题中显示的错误。我在清单中有写权限。它解压缩第一个文件[Content_Types] .xml但无法解压缩其他文件。
这是我的解压缩代码......
public void unzip(String filepath, String filename) throws IOException {
InputStream is = new FileInputStream(filepath + filename);
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));
try {
ZipEntry ze;
while ((ze = zis.getNextEntry()) != null) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int count;
String filename_temp = ze.getName();
if (ze.isDirectory()) {
File fmd = new File(filepath + filename_temp);
fmd.mkdirs();
} else {
FileOutputStream fout = new FileOutputStream(filepath + filename_temp);
while ((count = zis.read(buffer)) != -1) {
baos.write(buffer, 0, count);
byte[] bytes = baos.toByteArray();
fout.write(bytes);
baos.reset();
}
fout.close();
}
}
} finally {
zis.close();
}
}
答案 0 :(得分:0)
我不是Android应用开发者。但我在Golang遇到了同样的问题。问题不在于文件,它与文件夹有关。您必须为文件夹_rels设置创建权限。在我的情况下,我正在提取.docx文件,我只需要数据文件“word / document.xml”,所以我设置文件夹“word”的权限,并单独提取该文件夹。如果您也在寻找.xlsx的数据文件,那么它是“xl / worksheets / sheet1.xml”。在您的情况下,您必须同意“xl”和“工作表”。 希望这会有所帮助。
注意:我的Android知识非常有限,但我认为你必须写入访问源代码本身的外部文件或文件夹的权限,而不是清单文件。