我的应用程序工作正常但重新安装后我收到错误"尝试获取空数组的长度",而我的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"/>
答案 0 :(得分:1)
您需要实施Requesting Permissions at Run Time
才能访问手机存储,否则Android OS marshmallow及以上版本将不允许您的应用访问存储空间
因此,您需要为存储访问实现运行时权限模型