res/raw
内部我有3个.mp3文件,clip1.mp3
,clip2.mp3
和clip3.mp3
。
在我的服务应用程序中,我正在尝试计算res/raw
目录中的文件数。
R.raw.class.getFields().length; // returns 5 instead of 3
如果我尝试从目录中删除它们以测试它是否返回0,R.raw
不再被识别为符号(即使我没有删除该文件夹,只有它' s内容)。
我搜索了文件夹中的隐藏文件(Windows 10),但都不存在。
上面一行是否有理由返回5?或者有没有办法专门计算.mp3
个文件的数量?这些是我唯一感兴趣的扩展。
修改
事实证明,在Windows10中我无法看到文件。我遍历目录并记录了文件夹中的所有资产:
Field[] fields = R.raw.class.getFields();
for (int count = 0; count < fields.length; count++)
{
Log.i("Raw Asset: ", fields[count].getName());
}
得到了这个输出:
11-27 02:36:09.392 8363-8375/com.audioserver:remote I/Raw Asset:: $change
11-27 02:36:09.392 8363-8375/com.audioserver:remote I/Raw Asset:: clip1
11-27 02:36:09.392 8363-8375/com.audioserver:remote I/Raw Asset:: clip2
11-27 02:36:09.392 8363-8375/com.audioserver:remote I/Raw Asset:: clip3
11-27 02:36:09.392 8363-8375/com.audioserver:remote I/Raw Asset:: serialVersionUID
如何从退货值中排除$change
和serialVersionUID
?
答案 0 :(得分:1)
Start in count=1 avoid $change & avoid serialVersionUID with an if
Field[] fields = R.raw.class.getFields();
for (int count = 1; count < fields.length; count++)
{
if (!fields[count].getName().equals("serialVersionUID")) {
Log.i("Raw Asset: ", fields[count].getName());
}
}