티스토리 뷰
호출
List<FileObject> files = extensionFilter(Environment.getExternalStorageDirectory());
extenstionFilter 함수 내용
private ArrayList<FileObject> extensionFilter(File folder) {
ArrayList<FileObject> result = new ArrayList<>();
String value;
String fileFullPath;
FileObject fileObject;
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
//폴더안에 폴더가 존재하면 아래 폴더로 재 호출,
if (file.isDirectory()) {
result.addAll(extensionFilter(file));
}
else {
// . 이 존재하는 파일만 가져온다.
if (file.toString().contains(".")) {
fileFullPath = file.toString();
value = file.toString().substring(file.toString().indexOf("/")+1);
// 파일 명을 가져온다.
for (int i=0; i<1; i++) {
if (value.contains("/")) {
value = value.substring(value.indexOf("/")+1);
i--;
}
}
fileObject = new FileObject(value, fileFullPath);
result.add(fileObject);
}
}
}
}
return result;
}
폴더 안에 폴더가 존재할 경우 존재하는 폴더로 재귀하여 다시 로직 진행.
폴더 안에 폴더가 없을 경우 모든 파일을 다 갖고 올 수 있는데.. "."이 없는 파일은 무슨 파일인지도 모르겠고..
원하는 파일의 확장자가 있을 경우 "."이 아닌 다른걸 넣어도 됨
"/"가 존재할 경우 다시 반복하여 value 함수에서 "/" 앞을 잘라버린다. 이런식으로 풀경로와 파일이름을 나누어 저장.
fileObject는 그냥 getset밖에 없다..
public class FileObject {
String FileName;
String FileFullPath;
public FileObject(String name, String path) {
FileName = name;
FileFullPath = path;
}
public String getFileName() {
return FileName;
}
public void setFileName(String fileName) {
FileName = fileName;
}
public String getFileFullPath() {
return FileFullPath;
}
public void setFileFullPath(String fileFullPath) {
FileFullPath = fileFullPath;
}
}
반복문에서 file.length를 호출하면 파일의 용량을 가져온다. 해당 용량을 아래 함수로 바꾸면 우리가 보기 쉬운 kb mb 같은 값으로 바꿔준다.
private String formatFileSize(long bytes) { return android.text.format.Formatter.formatFileSize(context, bytes); }
'android' 카테고리의 다른 글
안드로이드 내부 디비에 있는 사진 및 동영상 경로 가져오기 (0) | 2019.04.17 |
---|---|
안드로이드 그리드뷰 갤러리 만들기, (2) | 2019.04.17 |
안드로이드 서비스를 사용한 위젯 갱신 및 클릭펜딩인텐트 (4) | 2019.04.17 |
안드로이드 앱 두번 눌러 종료하기 (0) | 2018.12.12 |
안드로이드 브로드캐스트 사용하기. (0) | 2018.12.12 |
- Total
- Today
- Yesterday
- React Native
- insert
- not found adb
- adb 환경변수
- rn
- 함수형 코드
- mongo db
- ubunut 설치 link
- 구글 맵 경로 그리기
- 자바
- not working adb
- spannableText
- MongoDB
- 귀찮아;;
- ubunut android
- 명령어
- 데이터베이스
- react native state
- Android
- 클래스형 코드
- https://medium.com/@limgyumin/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%9D%98-apply-with-let-also-run-%EC%9D%80-%EC%96%B8%EC%A0%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80-4a517292df29
- 차번호 정규표현식
- mac android
- https://hwan-shell.tistory.com/244
- text 부분 색 칠하기
- nosql
- 차번호 정규식
- 안드로이드
- not starting .bash_profile
- 구글 맵 선그리기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |