如何通过文件名查找位于 /res/raw 文件夹中的文件的资源 ID?

How to find resource id of a file located in /res/raw folder by its filename?

我想通过文件名获取位于 /res/raw 文件夹中的文件的资源 ID。我尝试了以下两种方法,但它们都 return 资源 ID 为 0(零)。

方法一:

String filename = "abc.txt";
int id = getResources().getIdentifier(filename, "raw", getPackageName());

方法二:

String filename = "abc.txt";
String fullyQualifiedName = getPackageName() + ":raw/" + filename;
int id = getResources().getIdentifier(fullyQualifiedName, null, null);

如果这不是正确的方法,那么我们如何通过位于 Android.

文件夹中的 raw 文件夹中的文件名获取资源 ID

删除扩展名:

String filename = "abc";
int id = getResources().getIdentifier(filename, "raw", getPackageName());