Android 获取目录中的所有文件 nullpointerexception

Android get all files in directory nullpointerexception

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