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



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

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

file:///android_asset几乎就是WebView的代名词。

如果zip4j有一个ZipFile构造函数,它接受一个InputStream,你可以通过getAssets().open("db.zip")在你的资产上获得一个流。

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

或者,由于破解ZIP存档的加密是微不足道的(上次我检查过),将内容解压缩到项目的assets/目录并更直接地使用它们,而不是将密码保护的ZIP放入assets/

最新更新