Android从资产中解压缩受密码保护的文件

时间:2016-08-28 14:07:43

标签: android zip password-protection

我的资产文件夹中有受密码保护的zip文件。 Android zip库不支持受密码保护的文件,所以我使用 zip4j 库。但是我无法从资产中提取文件。

ZipFile zipFile = new ZipFile("file:///android_asset/db.zip");
zipFile.setPassword("qwe");

1 个答案:

答案 0 :(得分:-1)

file:///android_asset几乎只针对WebView

如果zip4j的ZipFile构造函数带有InputStream,您可以通过getAssets().open("db.zip")获取资源信息流。

否则,您首先需要将db.zip从资产复制到本地文件(例如,在getCacheDir()中),然后使用zip4j,然后删除本地db.zip文件。

或者,因为破解ZIP存档上的加密是微不足道的(最后我检查过),将内容解压缩到项目的assets/目录中并更直接地使用它们,而不是将受密码保护的ZIP放入{{ 1}}。