小编Jac*_*ack的帖子

Android:获取Zip中的文件数量?

我有一个看似简单的问题,但我似乎无法让它正常工作.

我的'assets'文件夹中有一个zip文件,我需要解压缩ProgessBar,我想在其中向用户显示进度如何.

我有一切工作,但我想将ProgessBar最大值设置为zip文件中的文件数.此文件夹中的文件数有时会发生变化,因此我希望ProgessBar相对于zip中包含的文件数量.

我正在使用ZipInputStream-API,但似乎没有办法获取zip文件中的文件数量.我能想到的唯一方法是这样做:

   ZipInputStream zin = new ZipInputStream(getAssets().open(
                                "myFile.zip"));
   int numFiles = 0;
   int increment = 0;
   while (zin.getNextEntry() != null) {
     numFiles++;
    }

    ZipEntry ze = null;
    //Set the Max..value here..
    progessBar.setMax(numFiles);                
    while ((ze = zin.getNextEntry()) != null) {
       increment++;
       progessBar.setProgress(increment);
    }
Run Code Online (Sandbox Code Playgroud)

这有效,但有两个while循环似乎有点多余,基本上做同样的事情.

我知道有一个ZipFile-API有一个size()-method,但它需要一个文件的路径,因为我的文件位于'assets'文件夹中,我很确定从这个目录中读取的唯一方法是通过流式传输.

有没有办法让我做到这一点?

java zip android android-assets

9
推荐指数
3
解决办法
5728
查看次数

标签 统计

android ×1

android-assets ×1

java ×1

zip ×1