我正在尝试获取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。如何避免这种情况?
设置了对外部存储的读取和写入权限。
最佳答案
如果您必须检查是否为null,则没有什么可做的
File[] files = parentDir.listFiles();
if (files == null) {
return inFiles;
}
在您的情况下
inFiles
是一个空集合,尝试对一个空集合进行迭代不会遇到任何问题