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

时间:2017-08-01 17:15:28

标签: android

我的应用程序工作正常但重新安装后我收到错误"尝试获取空数组的长度",而我的dob文件夹中充满了以pi_开头的文件。现在我得到文件 - Null。

任何人都可以帮助解决错误吗?

由于

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"/>

1 个答案:

答案 0 :(得分:1)

您需要实施Requesting Permissions at Run Time才能访问手机存储,否则Android OS marshmallow及以上版本将不允许您的应用访问存储空间

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

Follow the link for an example