您几乎应该始终仅从非UI线程访问文件系统。否则,您可能会长时间阻塞UI线程并获得ANR。在运行FileWalker
AsyncTask的
doInBackground()。
这是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());



