如何在Android中获取资产文件夹的文件路径

14
我有一个用于将Android应用程序的.asset文件夹中的.png图像传输到我的本地服务器的Android应用程序。我需要获取.asset文件夹中图像的路径,请参考下面的代码:
String stringPath = "android.resource//"+getPackageName()+"/raw/sample/logout.png";             
File f = new File(stringPath);

如果我使用上面的代码,我会得到"文件未找到异常"。那么如何获取资产文件夹中的图像路径呢?

1
我找到了一种方法,可以参考我的答案这里 - Shailendra Madda
3个回答

10

尝试:

file:///android_asset/raw/sample/logout.png

如果您拥有一个上下文(Context),您可以使用context.getAssets().open("raw/sample/logout.png")来打开文件上的InputStream

6
文件未找到:/file:/android_asset/raw/sample/logout.png。 - sivanesan1
3
不返回实际文件路径。 - lostintranslation

3

可以使用 file:///android_asset 和 file:///android_res 来访问资产和资源。

 Uri path = Uri.parse("file:///android_asset/raw/sample/logout.png");

 String newPath = path.toString();

使用toString()将Uri转换为字符串。使用Uri.parse()将字符串转换为Uri。 - Sanu
1
我使用了你提供的完全相同的代码,但是只出现了文件未找到异常。实际上,我将文件路径传递给了第三方方法,它只会返回该错误。是否有任何可用的方法来检查上述代码是否正确工作? - sivanesan1
2
你不能通过这种方式获取文件的绝对路径,因为会出现相同的问题。 - lostintranslation
返回 FileNotFoundException。 - Matt

0
你可以将你的mp3文件放在res/raw文件夹中。
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.myringtone);
mediaPlayer.start();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接