2012-02-23 107 views

回答

9

它提供的图像出现在你的SD卡的图片文件夹数量:

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

伟大的工作人..任何时候感谢 – 2012-02-23 07:06:47

+0

..你可以使用filterfiles来限制文件类型 – Chet 2012-02-23 07:18:11

+0

不能理解。为什么我们需要限制文件类型 – 2012-02-23 08:26:31

1

我现在它已经很长一段时间,但是,上面的方法会给你任何类型的文件的数量和images文件夹中的目录,不仅是图像编号,也不会在images目录内的子文件夹中查找图像。

比方说,我们有这样的结构:

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

凡帕拉姆文件是根目录和数量将在0开始。因此,要使用它:

int imgNumber = countImgs(Environment.getExternalStorageDirectory(), 0); 
1

这将是当文件= 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!

相关问题