我喜欢阅读整个原始项目文件夹内容(包含一些.mp3文件)。这是我尝试阅读文件夹内容的方式:
Uri uri = Uri.parse("android.resource://" + this.getPackageName() + "/raw/");
File file = new File(uri.getPath());
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
Log.i("ADASDAS", files[i].getName());
}
但是我在文件对象上获得了NullPointerException。怎么了? 例外是在files.length调用。
答案 0 :(得分:0)
怎么了?
几乎所有东西:
Uri
不是File
,因此您无法将getPath()
传递给File
并期望其正常工作
资源不是设备上的文件,而是APK文件中的条目,因此您无法使用File
个对象进行迭代
android.resource
Uri
结构指向资源,而不是资源类型(例如,特定的raw
资源)
实际上没有很好的方法来迭代原始资源。最好的方法是使用Java反射迭代所有R.raw
个字段。