0

我想在我的 android 应用程序中应用 zip4j。我将演示 zip 文件放入资产文件夹 ( main/assets/test.zip)。我想用 zip4j 打开它:

import net.lingala.zip4j.core.ZipFile;
...
ZipFile zipFile = new ZipFile(new File("an/absolute/path/is/required"));

但是,应用 zip4j 所需的构造函数需要一个String对象(文件的绝对路径)或File对象。但是 Android 的 AssetManger 只返回一个InputStream. 也请不要:AssetManger 不提供绝对路径或其他东西。

那么,我必须做什么才能将输入流InputStream is = getResources().getAssets().open(filename);转换为一个java.io.File对象,然后我可以将其应用于ZipFile

4

1 回答 1

-1

处理资产时非常常见的任务:

  1. 从 AssetManager 获取 AssetFileDescriptor:openFD(String fileName)。
  2. 从该 AssetFileDescriptor 获取 FileDescriptor : getFileDescriptor()
  3. 从 FileDescriptor 构造一个新文件。
于 2015-09-24T09:35:22.350 回答