如何计算android中某些操作的进度值

时间:2013-02-01 10:02:16

标签: android

我正在处理读取SD卡文件的任务,我正在显示一个进度条,其中包含基于SD卡文件的计算百分比,例如Android中的某些防病毒软件。我不知道如何实现这个功能。我的SD卡读取文件代码如下所示:

File root = new File (Environment.getExternalStorageDirectory().getAbsolutePath());
scan(root);

扫描功能代码如下所示:

   public void scan (File path) {

            for (File f : path.listFiles()) {
                if (f.isFile()) {
                   Toast.makeText(getApplicationContext(),f.getAbsoluteFile().toString(),Toast.LENGTH_SHORT).show();
                }
                else {

                }
            }
        }

你能告诉我怎么做吗?

2 个答案:

答案 0 :(得分:2)

我猜文件列表有一个长度。您可以在循环中使用此长度来计算到目前为止已完成的文件数的百分比。也许是这样的事情:

File[] files = path.listFiles();
for (i=0; i<files.length; i++) {
    // Report i / files.length percent done
}

答案 1 :(得分:1)

public void scan (final File path) {

         float progress = 0.0f;
         int count  = 0;
         for (File f : path.listFiles()) {
             if (f.isFile()) {
                Toast.makeText(getFragmentContext(),f.getAbsoluteFile().toString(),Toast.LENGTH_SHORT).show();
             }
             else {

             }
             count++;
             progress += ( (float)count / (float)path.listFiles().length ) * 100;
         }
     }

希望这就是你想要的。