Android: получите количество файлов в zip-формате (с Storage Volume / Storage Access Framework) - PullRequest
0 голосов
/ 24 мая 2018

Я использую том для хранения, чтобы разархивировать 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++;
}
...