java Android:获取zip中的文件数(使用存储卷/存储访问框架)
我正在使用存储卷将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) 个答案