Как подсчитать количество изображений, хранящихся на SD-карте? - PullRequest
2 голосов
/ 23 февраля 2012

Мне нужно рассчитать количество изображений, хранящихся на SD-карте, поэтому я хотел бы назвать уникальные изображения, такие как Sample0, Sample1, Sample2, Sample3 и т. Возможно ли это?

Ответы [ 3 ]

9 голосов
/ 23 февраля 2012

Количество изображений в папке изображений на вашей SD-карте:

File dir = new File(Environment.getExternalStorageDirectory()
                + "/images");
        File[] files = dir.listFiles();
        int numberOfImages=files.length;
1 голос
/ 11 сентября 2013

это будет ошибкой, когда files = null, когда вы получите количество изображений, сохраненных на SD-карте

     File dir = new File(Environment.getExternalStorageDirectory() + "/images");
     File[] files = dir.listFiles();
     String strnumberOfImages=files.length;
     int intnumberOfImages= 0;
     try{
          intnumberOfImages = Integer.parseInt( strnumberOfImages);
     }catch ( Exception e ){
          intnumberOfImages = 0;
     }

, если просто отметьте пустым или нет

    File dir = new File(Environment.getExternalStorageDirectory()+ "/images");
File[] files = dir.listFiles();

if(files != null){
      // there are picz                     
}else{
      // sd card empty
}

cheerz!

1 голос
/ 04 июля 2013

Я уже давно, но вышеописанный метод даст вам количество файлов и каталогов любого типа в папке с изображениями, а не только количество изображений, и не ищет изображения в подпапках внутри изображений.каталог.

Допустим, у нас есть такая структура:

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);
...