【问题标题】:Android File.listFiles() returns nullAndroid File.listFiles() 返回 null
【发布时间】:2019-02-13 20:01:15
【问题描述】:

我正在尝试通过我的 apk 访问我的 android 文件并(最初)在我的终端上列出它们。这是我使用的代码:

File basePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)getAbsolutePath();
File directory = new File(basePath);
System.out.println("" + directory.toString());
File[] directoryContents = directory.listFiles();

我确实成功打印了这条路径:/storage/emulated/0/Download,它实际上存在于我的 android 中并且其中有一些文件。

当列出该目录中的文件时:

for (File file : directoryContents)
    {
        if (file.isFile())
            System.out.println("" + file.getName());
        else
            continue;
    }

我收到java.lang.NullPointerException: Attempt to get length of null array

我还在 android 的清单中包含了<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

如果有帮助的话,我的智能手机可以在 Android 7.0 上运行。

【问题讨论】:

标签: java android nullpointerexception


【解决方案1】:

listFiles 如果从中调用此方法的 File 实例是一个目录,则返回一个数组。 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) 总是(我猜)返回一个目录(除非你改变了操作系统的默认值)。所以唯一出错的可能是缺少权限;

here is how to ask permissions properly

【讨论】:

    猜你喜欢
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2015-03-08
    • 2023-03-16
    • 2012-06-22
    • 2012-05-28
    • 2014-12-05
    相关资源
    最近更新 更多