这是相关的代码:
FilenameFilter mp3Filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
if (name.endsWith(".mp3")) {
return true;
}
return false;
}
};
FilenameFilter dirFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
String n = name.toLowerCase();
if (n.startsWith(".") || n.contains("notifications") || n.contains("ringtones") || n.contains("alarms")) {
return false;
}
File f = new File(dir.getAbsolutePath()+"/"+name);
return f.isDirectory();
}
};
private void GetMp3s(File root) {
String[] mp3s = root.list(mp3Filter);
for (int i=0; i<mp3s.length; i++)
files.add(root+"/"+mp3s[i]);
String[] dirs = root.list(dirFilter);
for (int i=0; i<dirs.length; i++)
GetMp3s(new File(root+"/"+dirs[i]));
};
工作得mp3Filter
很好,并且 dir 过滤器仅在文件是目录时才返回 true,但这些n.contains()
东西不起作用 - 即。对于名为“通知”等的目录,我会返回 true。
我在这里想念什么?