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

时间:2015-02-01 09:52:26

标签: java android file android-sdcard android-external-storage

我正在尝试获取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。我怎么能避免这个?

设置了对外部存储的读写权限。

1 个答案:

答案 0 :(得分:1)

如果你必须检查null

,那就没什么可做的了
File[] files = parentDir.listFiles();
if (files == null) {
  return inFiles;
}

在您的情况下inFiles是一个空集合,尝试迭代一个空集合不会出现任何问题