我正在尝试获取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是一个空集合,尝试对一个空集合进行迭代不会遇到任何问题

10-01 02:59