如何获取存储在SD卡中的图像数量

时间:2012-02-23 06:51:14

标签: android android-layout android-intent android-emulator

我需要计算存储在SD卡中的图像数量,因此我想将图像命名为Sample0,Sample1,Sample2,Sample3等。 可能吗?

3 个答案:

答案 0 :(得分:9)

它显示SD卡图像文件夹中的图像数量:

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

答案 1 :(得分:1)

我现在已经很久了,但是,上面的方法会为你提供图像文件夹中任何类型的文件和目录的数量,不仅仅是图像编号,而且不会在图像内的子文件夹中查找图像目录。

假设我们有这样的结构:

Images/
 - img1.jpg
 - img2.jpg
 - data.dat
 - whatever.pdf
 - Folder/
    - img3.png

上面的方法会给你5,你应该得到3不是吗?

我一直在做类似的事情,我很确定有一种更有效的方法,但是通过这种方法,我得到SDCard中的所有图像的数量,或任何给定的目录及其子文件夹... < / p>

我们走了:

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

答案 2 :(得分:1)

当获取存储在SD卡中的图像数量

时,files = null时会出错
     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!