Я уже давно, но вышеописанный метод даст вам количество файлов и каталогов любого типа в папке с изображениями, а не только количество изображений, и не ищет изображения в подпапках внутри изображений.каталог.
Допустим, у нас есть такая структура:
Images/
- img1.jpg
- img2.jpg
- data.dat
- whatever.pdf
- Folder/
- img3.png
Приведенный выше метод даст вам 5, и вы должны получить 3, не так ли?на что-то подобное, и я почти уверен, что есть более эффективный способ, но с помощью этого метода я получаю количество всех изображений в SDCard, или любой заданный каталог и его подпапки ...
Здесь мы идем:
public int countImgs(File file, int number) {
File[] dirs = file.listFiles();
String name = "";
if (dirs != null) { // Sanity check
for (File dir : dirs) {
if (dir.isFile()) { // Check file or directory
name = dir.getName().toLowerCase();
// Add or delete extensions as needed
if (name.endsWith(".png") || name.endsWith(".jpg")
|| name.endsWith(".jpeg")) {
number++;
}
} else number = countImgs(dir, number);
}
}
return number;
}
Где файл param является корневым каталогом, а число будет 0 при запуске.Итак, чтобы использовать это:
int imgNumber = countImgs(Environment.getExternalStorageDirectory(), 0);