首页 > 解决方案 > 使用 Android 资产 zip 文件时出现 FileNotFound 异常

问题描述

我正在尝试使用以下内容访问我存储在资产文件夹中的 zip 文件:

val filePath = Uri.parse("file:///android_asset/testfile_v1.1.1.zip").toString()

但是,即使我确定该文件在那里并且我不知道为什么,我也会收到 FileNotFound 错误。

任何建议表示赞赏。

错误:

java.io.FileNotFoundException: file:/android_asset/testfile_v1.1.1.zip (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:200)
        at java.io.FileInputStream.<init>(FileInputStream.java:150)
        at java.io.FileInputStream.<init>(FileInputStream.java:103)

用例:

private InputStream openInputStream(final String filePath, final String mimeType, final int mbrSize, final int types) throws IOException {
    final InputStream is = new FileInputStream(filePath);
    if (MIME_TYPE_ZIP.equals(mimeType))
        return new ArchiveInputStream(is, mbrSize, types);
    if (filePath.toLowerCase(Locale.US).endsWith("hex"))
        return new HexInputStream(is, mbrSize);
    return is;
}

标签: javaandroidkotlininputstream

解决方案


如果路径/android_asset/testfile_v1.1.1.zip真的正确,可能是因为您在输入的未转义路径中错过了一个斜杠,即file:///而不是file:////


推荐阅读