2016-08-28 2 views
1

У меня есть защищенный паролем zip-файл от активов папка. Android zip-библиотека не поддерживает защищенный паролем файл, поэтому я использовал zip4j. Но я не могу извлечь файл из активов.Android unzip защищенный паролем файл из активов

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

Какие ошибки вы сталкиваетесь ?? –

+0

Я получаю сообщение об ошибке FileNotFoundException – kibar

ответ

0

file:///android_asset довольно много только для WebView.

Если zip4j имеет конструктор ZipFile, который принимает InputStream, вы можете получить поток по своим активам через getAssets().open("db.zip").

В противном случае, вам сначала нужно будет скопировать db.zip из активов в локальный файл (например, в getCacheDir()), а затем использовать zip4j, а затем удалить локальный db.zip файл.

Или, так как взломать шифрование в ZIP-архиве тривиально (последний раз я проверил), распакуйте содержимое в каталог вашего проекта assets/ и используйте их более напрямую, вместо того, чтобы поместить защищенный паролем ZIP в assets/.

Смежные вопросы