Il s'agit d'une simple recherche de graphique avec FileFilter et File.listFiles(). Et voilà:
private ArrayList<File> listFiles(String folder) {
ArrayList<File> files = new ArrayList<File>();
files.add(new File(folder));
return listFiles(files);
}
private ArrayList<File> listFiles(ArrayList<File> files) {
ArrayList<File> result = new ArrayList<File>();
for (int i = 0; i < files.size(); i++) {
if (files.get(i).isDirectory()) {
File file = files.get(i);
files.remove(i);
File[] files2 = file.listFiles(filter);
if (files2 == null)
continue;
ArrayList<File> f = new ArrayList<File>();
for (int j = 0; j < files2.length; j++) {
f.add(files2[j]);
}
result.addAll(listFiles(f));
} else {
result.add(files.get(i));
}
}
return result;
}
FileFilter filter = new FileFilter() {
@Override
public boolean accept(File arg0) {
return arg0.getName().endsWith(".jpg") || arg0.getName().endsWith(".bmp")
|| arg0.getName().endsWith(".png") || arg0.isDirectory();
}
};
d'abord essayer vous-même ... –
Ouais, ne traitez pas SO comme vos pigistes de codage travaillant gratuitement. Et vous avez une bonne réponse, pourquoi ne pas l'accepter? – Siddharth
@Siddharth Je l'ai fait le 16 mars, c'est pourquoi je ne l'ai pas vérifié. –