有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案