4
我想查找存储在SD卡上的所有文件。我用这个代码:查找SD卡上的所有文件
List<File> dir = new ArrayList<File>();
List<File> files = new ArrayList<File>();
File root = new File (Environment.getExternalStorageDirectory().getAbsolutePath());
scan(root); // find root directories
for (File f : dir) { // find in root...
scan(f);
}
Log.i("files", "" + files.size());
Log.i("dir", "" + dir.size());
}
public void scan (File path) {
for (File f : path.listFiles()) {
if (f.isFile()) {
files.add(f);
}
else {
dir.add(f);
}
}
}
但我有问题,与此异常:“java.util.ConcurrentModificationException” 更改列表(DIR)和循环播放。 ListIterator不起作用。
write:java.lang.NullPointerException。尝试找到哪里是空.... – Alex
你将不得不添加一些代码到我的编辑版本在... ...代码来找到根目录:将rootDirs作为一个空列表声明,然后做类似的事情(文件f: root.listFiles()){if(f.isDirectory())rootDirs.add(f); } – Fishbreath
如果我将第一个目录(不是/ sdcard)设置为文件夹“tree”与其他文件夹和文件在其中工作。但如果root是“/ sdcard”,他会发现大约3个文件夹和“内部死亡”。编写NullPointerException。尝试找到问题。稍后再写。谢谢.... – Alex