티스토리 뷰
이번 액자위젯을 만들면서 필요했던 기능중에 또 하나가 있는데
그것은 바로 특정폴더에 존재하는 이미지파일들 목록을 구하는 것이였습니다.
사진을 선택하는데 괜시리 txt파일같은걸 골라봤자 (에러는 안나지만) 빈 사진만 나타나고
그런 파일들이 많으면 사진을 선택할 때 지저분하니까요.
바로 소스 설명으로 넘어가겠습니다.
//1. 이미지파일 목록을 불러올 경로를 구한다. String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "ImageList" + File.separator; //path에는 "sdcard/ImageList/" 와 같은 값이 들어갑니다.
//2. 경로를 이용해 File 객체를 생성한다. File list = new File(path);
//3. list객체에서 이미지목록만 추려 낸다. String[] imgList = list.list(new FilenameFilter() { public boolean accept(File dir, String filename) { Boolean bOK = false; if(filename.toLowerCase().endsWith(".png")) bOK = true; if(filename.toLowerCase().endsWith(".9.png")) bOK = true; if(filename.toLowerCase().endsWith(".gif")) bOK = true; if(filename.toLowerCase().endsWith(".jpg")) bOK = true;
return bOK; } }); //toLowerCase : 소문자로 변환 //endsWith() : 끝의 문자가 ()안의 문자와 같은지 판별해서 Boolean형으로 리턴한다. //파일목록중 png, 9.png, gif, jpg 확장자를 가진 파일들 목록만 imgList에 저장된다. |
FilenameFilter 안의 내용만 조금 바꾸면
문서파일 목록 구하기,
동영상파일 목록 구하기 등 응용 가능합니다.
다만 확장자로만 판별하는 것이라
문서파일인데 파일이름만 바꿔서 jpg 확장자를 갖는다던가 할 수 있으니
실제파일형식이 다를경우 크리티컬한 문제가 발생할 수 있는 경우라면
주의하시기 바랍니다.
'개발 > 개발 자료' 카테고리의 다른 글
[cocos2d-x] 다양한 해상도 적용 (0) | 2013.09.12 |
---|---|
[Android] Bitmap -> Byte[] or Byte[] -> Bitmap 변환 (0) | 2013.09.12 |
[Android] 안드로이드 파일로 저장 및 읽기 (0) | 2013.09.10 |
[Android] GCM(Google Cloud Messaging for Android) 만들기 (0) | 2013.09.10 |
[Android] assets 파일 읽어오기 (2) | 2013.09.10 |