Android - 原始计数.mp3

时间:2016-11-27 16:38:10

标签: android count

res/raw内部我有3个.mp3文件,clip1.mp3clip2.mp3clip3.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

如何从退货值中排除$changeserialVersionUID

1 个答案:

答案 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());
               }
            }