以下是相关的代码:
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()
内容不起作用 - 即。我对名为“notifications”等的目录返回true。
我在这里缺少什么?