首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中递归扫描目录

如何在Android中递归扫描目录
EN

Stack Overflow用户
提问于 2012-07-14 16:24:28
回答 2查看 10.1K关注 0票数 4

如何在Android中递归扫描目录并显示文件名?我正在尝试扫描,但速度很慢(强制关闭或等待)。我使用了一个单独的答案to this question中给出的FileWalker类。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-14 16:50:52

您几乎总是应该只从非UI线程访问文件系统。否则,您可能会长时间阻塞UI线程并获得ANR。在AsyncTaskdoInBackground()中运行FileWalker。

这是FileWalker的一个稍微优化的版本:

代码语言:javascript
复制
public class Filewalker {

    public void walk(File root) {

        File[] list = root.listFiles();

        for (File f : list) {
            if (f.isDirectory()) {
                Log.d("", "Dir: " + f.getAbsoluteFile());
                walk(f);
            }
            else {
                Log.d("", "File: " + f.getAbsoluteFile());
            }
        }
    }   
}

您可以从后台线程调用它,如下所示:

代码语言:javascript
复制
Filewalker fw = new Filewalker();
fw.walk(context.getFilesDir());
票数 19
EN

Stack Overflow用户

发布于 2012-07-14 16:40:38

System.out.println调用非常慢(实际上并不是函数本身,而是底层的PrintStream,它会花费大量时间在控制台中编写文本)。

用其他东西替换它们,应该没问题。例如,您可以创建并返回一个带有文件名的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11482204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档