2011-08-12 4 views
7

필자는 fileBrowser를 사용하여 전화에서 파일을 찾았지만 내 앱이 사용자에게 열 수있는 모든 파일을 표시하고 사용자가 파일을 선택하려고했습니다. 뮤직 플레이어와 마찬가지로 휴대 전화, SD 카드 및 내부 메모리에있는 모든 노래를 사용자가있는 폴더의 노래뿐만 아니라 보여줍니다.Android에서 특정 확장명을 가진 모든 파일을 찾는 방법은 무엇입니까?

답변

8

파일을 나열하는 동안 파일 이름 필터를 사용하십시오.

String files[] = root.list(audioFilter); 

FilenameFilter audioFilter = new FilenameFilter() { 
    File f; 
    public boolean accept(File dir, String name) { 
    if(name.endsWith(".mp3") || name.endsWith(".MP3")) { 
      return true; 
     } 
     f = new File(dir.getAbsolutePath()+"/"+name); 

     return f.isDirectory(); 
    } 
}; 
+0

대단히 감사합니다. 이제는 하위 폴더의 모든 파일을 가져 오기 위해이 파일을 만들려고합니다. 시간 문제 일뿐입니다. –

+0

문자열 검사는 name.length()> = 4 && name.subString (name.length-4) .toLowerCase(). equals (".mp3") 또는 이와 비슷한 것 (확인하지 않음) . 이유는이 방법으로 한 번 이상 문자열을 이동할 필요가 없기 때문입니다. –

1

어떤 FileBrowser 구현을 사용하고 있는지 알 수는 없으나 좋은 것은 FileFilter을 받아 들여야합니다. public abstract boolean accept (File pathname)

+0

라비 빠르게,하지만 덕분에 당신은에 - (- 아래 코드는 root 아래에있는 모든 폴더에 대해 반복적으로 그것을하지 않습니다) 아래의 샘플은 주어진 root 디렉토리에있는 모든 mp3 파일을 나열합니다. –

관련 문제