Android - Получение номера записей zip-файлов при использовании только классов Storage Access Framework - PullRequest
0 голосов
/ 02 июля 2019

Мое приложение извлекает некоторые ZIP-файлы. Я делаю это с помощью Storage Access Framework, и я отказался от обычных разрешений на чтение / запись в манифесте. Так что теперь у меня нет прямого доступа к файлам, и я не хочу полагаться на

File

класс вообще для файлов, которые являются внешними по отношению к частной папке приложения.

Когда дело доходит до zip-файлов, мне нужно, чтобы мой знал количество записей, которые в нем хранятся, перед их извлечением (потому что мне нужно показать индикатор выполнения), и это можно сделать двумя способами:

1

ZipFile zf=new ZipFile(filePath);
maxEntries=zf.size();

2

entriesCounter=0;
while ((zipEntry = zInputStream.getNextEntry()) != null)
{
    entriesCounter=entriesCounter+1;
    zInputStream.closeEntry();
}
maxEntries=entriesCounter;

но второй способ, единственный возможный в SAF, я думаю, очень ресурсоемкий. Так в чем же решение?

...