/_rels/.rels:打开失败:ENOENT(没有这样的文件或目录)

时间:2014-10-05 07:25:26

标签: java android

当我尝试解压缩.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();
}
}

1 个答案:

答案 0 :(得分:0)

我不是Android应用开发者。但我在Golang遇到了同样的问题。问题不在于文件,它与文件夹有关。您必须为文件夹_rels设置创建权限。在我的情况下,我正在提取.docx文件,我只需要数据文件“word / document.xml”,所以我设置文件夹“word”的权限,并单独提取该文件夹。如果您也在寻找.xlsx的数据文件,那么它是“xl / worksheets / sheet1.xml”。在您的情况下,您必须同意“xl”和“工作表”。 希望这会有所帮助。

注意:我的Android知识非常有限,但我认为你必须写入访问源代码本身的外部文件或文件夹的权限,而不是清单文件。