阅读原始文件夹内容

时间:2015-01-22 22:00:59

标签: android file uri

我喜欢阅读整个原始项目文件夹内容(包含一些.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调用。

1 个答案:

答案 0 :(得分:0)

  

怎么了?

几乎所有东西:

  • Uri不是File,因此您无法将getPath()传递给File并期望其正常工作

  • 资源不是设备上的文件,而是APK文件中的条目,因此您无法使用File个对象进行迭代

  • android.resource Uri结构指向资源,而不是资源类型(例如,特定的raw资源)

实际上没有很好的方法来迭代原始资源。最好的方法是使用Java反射迭代所有R.raw个字段。