如何在Android中递归扫描目录并显示文件名?我正在尝试扫描,但是速度很慢(强制关闭或等待)。我正在使用在单独的答案to this question中给出的FileWalker
类。
最佳答案
您几乎应该始终仅从非UI线程访问文件系统。否则,您可能会长时间阻塞UI线程并获得ANR。以AsyncTask
的doInBackground()
运行FileWalker。
这是FileWalker的稍微优化的版本:
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());
}
}
}
}
您可以从这样的后台线程调用它:
Filewalker fw = new Filewalker();
fw.walk(context.getFilesDir());