我需要计算存储在SD卡中的图像数量,因此我想将图像命名为Sample0,Sample1,Sample2,Sample3等。 可能吗?
答案 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!