我正在尝试获取SD卡上特定目录的所有文件。因此我发现了这个功能
public static List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
} else {
if(file.getName().endsWith(".mp3")){
inFiles.add(file);
}
}
}
return inFiles;
}
问题如下:如果文件夹为空,则会抛出NullPointerException。我怎么能避免这个?
设置了对外部存储的读写权限。
答案 0 :(得分:1)
如果你必须检查null
,那就没什么可做的了File[] files = parentDir.listFiles();
if (files == null) {
return inFiles;
}
在您的情况下inFiles
是一个空集合,尝试迭代一个空集合不会出现任何问题