2012-12-21 1 views
1

입력 한 문자열이있는 경우 어떻게 sd 카드의 파일을 검색 할 수 있습니까?Android : sd 카드에서 파일을 검색하는 방법?

나는 "테스트"를 검색하고 이름에 문자열 "테스트"를 포함하는 모든 파일과 목록 싶어 싶습니다

testfile.txt 

filetest.jpg 

thisisatestfile.xml 

답변

3
  1. 을 검색하려는 최상위 디렉토리를 가져와야합니다. 왜냐하면/(루트)에서 검색을 시작하면 너무 많은 리소스가 낭비되기 때문입니다./sdcard (또는 최상위 사용자 데이터 디렉토리가 무엇이든간에)부터 시작하는 것이 가장 좋습니다.
  2. 아래의 모든 디렉토리를 반복합니다. 재귀 적으로 사용하는 것이 좋습니다.
  3. 검색 기준과 일치하는 각 파일 이름을 저장하십시오. 결과가 원하는대로 수행하십시오.
5

Apache Commons IOListFiles()을 사용하면 RegexFileFilter FileFilter를 전달할 수 있습니다. 당신의 안드로이드 프로젝트에 커먼즈 IO 항아리 라이브러리를 사용하여

예 :

또한
Collection<File> files = FileUtils.listFiles(
          Environment.getExternalStorageDirectory(), 
          new RegexFileFilter(".*test.*"), 
          TrueFileFilter.TRUE); 

for(File f : files){ 
    //---do something--- 
} 

는, 별도의 스레드에서이 코드를 실행, AsyncTask을 사용하는 것이 좋습니다.