2012-02-23 6 views

답변

9

:

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

위대한 직장 사람 .. 언제든지 –

+0

감사합니다. 파일 형식을 제한하기 위해 filterfiles를 사용할 수 있습니다. – Chet

+0

can not understand. 왜 우리는 파일 형식을 제한해야합니까? –

1

내가 지금은 위의 방법은 당신에게 파일의 모든 종류의 수를 줄 것이다, 오랜 시간이 있지만 있어요 및 images 폴더 내의 디렉토리는 이미지 번호뿐만 아니라 images 디렉토리의 하위 폴더에있는 이미지를 찾지 않습니다.

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

방법은 위의 당신에게 5 줄 것이다 당신이 3 그렇지 않은 받아야합니다 :

은의 우리가이 구조를 가지고 있다고 가정 해 봅시다?

저는 비슷한 방법으로 작업 해 왔으며보다 효율적인 방법이 있다고 확신합니다.하지만이 방법을 사용하면 SDCard 또는 특정 디렉토리와 그 하위 폴더에있는 모든 이미지의 수를 얻을 수 있습니다 ...

여기에 우리가 간다 :

경우 PARAM 파일이
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!

관련 문제