Мое приложение извлекает некоторые 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, я думаю, очень ресурсоемкий.
Так в чем же решение?