Android:获取zip文件数(使用存储卷/存储访问框架)

时间:2018-05-24 14:07:07

标签: java android zip android-7.0-nougat storage-access-framework

我正在使用存储卷将我的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++;
}

0 个答案:

没有答案