我应该如何加载Android设备中存在的所有文件的列表。我发现很多Stack Overflow帖子显示了如何递归加载所有文件列表但我无法找到如何使用AsyncTaks加载。
这就是我加载所有文件列表的方式。
但很多时候我在行号111- if(file.listFiles().length==0)
public class load extends AsyncTask<Void, Void, Void>{
@Override
public Void doInBackground(Void... voids)
{
load_items();
return null;
}
public void load_items()
{
getListFiles(new File(Environment.getExternalStorageDirectory().getPath()));
}
}
private List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
if(file!=null && file.listFiles()!=null)
{
if(file.listFiles().length==0) // Line 111
{
//DO Something
}
else
{
inFiles.addAll(getListFiles(file));
}
}
} else if(file.canWrite()){
// Do Something
inFiles.add(file);
}
}
return inFiles;
}
我无法弄清楚错误是什么。任何帮助都会非常棒。