我正在使用存储卷将我的Android 7.0手机的SD卡上的zip文件解压缩到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++;
}