あなたが説明した組織では、検索/リストが開始されるディレクトリにメディアファイルはありません。実際に探しているファイルを取得できるようになるまで、/media
サブディレクトリをナビゲートする必要があります。/media/artist/album
また、フィルターをメソッドに追加しlist
、フィルターの accept メソッドを実装して、サムネイルと非表示のメタファイルを追い出す必要がある場合もあります。
ここにあなたを助けることができるコード(テストされていない)があります
private final static Set<String> mediaExtensions;
static {
mediaExtensions = new HashSet<String>();
mediaExtensions.add(".mp3");
mediaExtensions.add(".wav");
mediaExtensions.add(".ogg");
// and so on
}
public static void list(File file, List<File> result) {
if(file.isFile()) {
result.add(file);
} else if(file.isDirectory()) {
File files[] = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
boolean accept = false;
int i = pathname.getName().lastIndexOf('.');
if(i != -1) {
String ext = pathname.getName().substring(i);
accept = (! pathname.isHidden()) &&
mediaExtensions.contains(ext);
}
return accept;
}
});
if(files != null) {
for(File f : files) {
list(f, result);
}
}
}
}