Android 尝试从空数组读取,但数组包含多个文件名

Android 尝试从空数组读取,但数组包含多个文件名,android,Android,我的应用程序运行得很好,但在重新安装后,我得到了一个错误,即“尝试获取空数组的长度”,而我的dob文件夹中充满了以pi_开头的文件。现在我得到的文件是空的 有人能帮我解释一下错误是什么吗 谢谢 File path = new File(Environment.getExternalStorageDirectory().toString() + "/dob"); if (path.exists()) { Toast.makeText(this, "Dob folder e

我的应用程序运行得很好,但在重新安装后,我得到了一个错误,即“尝试获取空数组的长度”,而我的dob文件夹中充满了以pi_开头的文件。现在我得到的文件是空的

有人能帮我解释一下错误是什么吗

谢谢

File path = new File(Environment.getExternalStorageDirectory().toString() + "/dob");

    if (path.exists()) {
        Toast.makeText(this, "Dob folder exists", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(this, "Dob folder does not exist", Toast.LENGTH_SHORT).show();

    }

    File[] files = path.listFiles();

    if (files != null) {
        Toast.makeText(this, "files length: " + files.length, Toast.LENGTH_SHORT).show();

        piStarters = new String[files.length];
        int db = 0;

        for (File file : files) {
            Toast.makeText(this, ":" + file.toString() + ":", Toast.LENGTH_LONG).show();
            if (file.getName().startsWith("pi_")) {

                piStarters[db] = file.getName();
                Toast.makeText(this, "I need this (pistarter): " + piStarters[db], Toast
                        .LENGTH_SHORT)
                        .show();
                db++;
            }
        }
    } else {
        Toast.makeText(this, "files - Null ", Toast
                .LENGTH_SHORT).show();
    }
舱单:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

您需要实现才能访问手机存储否则android OS marshmallow及以上版本将不允许您的应用访问存储

因此,您需要实现存储访问的运行时权限模型


您是否实现了运行时权限?是的,我的清单文件包含:您的android操作系统是什么?android 6.0是版本我很高兴我能提供帮助,很高兴编码