1

我正在执行读取 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 {

                }
            }
        }

你能告诉我怎么做吗?

4

2 回答 2

2

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

File[] files = path.listFiles();
for (i=0; i<files.length; i++) {
    // Report i / files.length percent done
}
于 2013-02-01T10:04:56.803 回答
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;
         }
     }

希望这是你想要的。

于 2013-02-01T10:12:02.037 回答