Я использую том для хранения, чтобы разархивировать zip-файл на SD-карте моего телефона Android 7.0 в папку на SD-карте:
InputStream is = getContentResolver().openInputStream(myZipFile.getUri());
BufferedInputStream bis = new BufferedInputStream(is);
ZipInputStream zis = new ZipInputStream(bis);
ZipEntry zipEntry;
while ((zipEntry = zis.getNextEntry()) != null) { ... }
Для отображения прогресса в нужном мне диалоговом окнеобщее количество элементов в zip-файле.Как вы делаете это с Storage Volume / StorageAccesFramework?
Вы не можете сделать это таким образом, потому что вы не получаете фактические пути с SV / SAF:
ZipFile zip = new ZipFile(pathToZipFile);
int size = zip.size();
... и итерация по всему файлу для подсчета количества файлов перед повторной итерацией по нему для распаковки файла выполняется медленно:
while ((zipEntry = zis.getNextEntry()) != null) {
size++;
}