我在res/raw中有.ogg文件,已经实现了将文件保存到SD卡的功能,并且我希望将文件名设置为原始文件名。
它应该与resources.getResourceName()一起使用。
Resources.getResourceName(id)
来获取package:type/entryname
,或使用Resources.getResourceEntryName(id)
来获取条目名称(文件名)。Context.getResources()
获取资源对象。这是一个非常老的问题,但是如果其他人也在尝试同样的事情,这个方法可以用来获取文件名:
Resources myResources = context.getResources();
String myFileName = myResources.getString((int)R.raw.myFile);
由于某些原因,即使R.raw.myFile
的类型为:"final int",而Resources.getString()
需要参数"int id",
如果您不将R.raw.myFile
强制转换为int,Lint将用错误标记该行,显示"Expected resource of type string"
尽管查看文档,似乎没有重载版本的Resources.getString()
接受字符串参数。
我使用的是Android Studio v3.6.3,支持最低SDK 21。