如何在Android中递归扫描目录并显示文件名?我正在尝试扫描,但速度很慢(强制关闭或等待)。我使用了一个单独的答案to this question中给出的FileWalker类。
发布于 2012-07-14 16:50:52
您几乎总是应该只从非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());发布于 2012-07-14 16:40:38
System.out.println调用非常慢(实际上并不是函数本身,而是底层的PrintStream,它会花费大量时间在控制台中编写文本)。
用其他东西替换它们,应该没问题。例如,您可以创建并返回一个带有文件名的数组。
https://stackoverflow.com/questions/11482204
复制相似问题