Нужно программно разархивировать zip файл. Знаю про либу zip4j, но как я понял, получать прогресс из этой задачи не получится.
AsyncTask
? Может быть в нем запускать разархивацию и сравнивать размеры файлов? Не вариант, так как степень сжатия неизвестна.
Да и вообще мне кажется все проще. Никто с этим не сталкивался?
Функция разархивирования:
public class Decompress {
private String zipFile;
private String location;
public Decompress(String zipFile, String location) {
this.zipFile = zipFile;
this.location = location;
dirChecker("");
}
public void unzip() {
try {
FileInputStream fin = new FileInputStream(zipFile);
ZipInputStream zin = new ZipInputStream(fin);
ZipEntry ze = null;
while ((ze = zin.getNextEntry()) != null) {
Log.v("Decompress", "Unzipping " + ze.getName());
if(ze.isDirectory()) {
dirChecker(ze.getName());
} else {
FileOutputStream fout = new FileOutputStream(location + ze.getName());
for (int c = zin.read(); c != -1; c = zin.read()) {
fout.write(c);
}
zin.closeEntry();
fout.close();
}
}
zin.close();
} catch(Exception e) {
Log.e("Decompress", "unzip", e);
}
}
private void dirChecker(String dir) {
File f = new File(location + dir);
if(!f.isDirectory()) {
f.mkdirs();
}
}
}
Пример работы:
String zipFile = Environment.getExternalStorageDirectory() + "/files.zip";
String unzipLocation = Environment.getExternalStorageDirectory() + "/unzipped/";
Decompress d = new Decompress(zipFile, unzipLocation);
d.unzip();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я хочу ограничить тип, передаваемый в метод, в качестве параметра снизу:
Хотел изменить интерфейс страницы набора номера и звонкаПерерыл везде, нигде об этом не говорится или не правильно искал
В каком виде приходит ответ от facebook, после отправки запроса