getAssets()openFD()失败。

AssetFileDescriptor fileFD=null;
File file = new File(Environment.getExternalStorageDirectory() + "/Music/ckyws8.wav");
fileFD = getAssets().openFd(file.toString()); //FAILS

日志显示:
java.io.FileNotFoundException:/mnt/sdcard/Music/ckyws8.wav

即使file.exists()返回true 以及测试:
File tempath = new File(Environment.getExternalStorageDirectory() + "/Music");
int files = tempath.list().length;
for(int f=0;f<files;f++){
    Log.d(LOG_TAG,tempath.list()[f].toString());
}

返回包含ckyws8.wav的列表

有任何想法吗?

最佳答案

AssetManager用于访问应用程序的 Assets , Assets 是项目源代码树中assets/目录的内容。它不是用于访问内部或外部存储上的文件的,这就是为什么您的代码不起作用的原因。

关于android - Android getAssets()。openFd(string)-找不到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15709935/

10-10 14:26