안드로이드 파일(File) 저장 경로 구하는 메소드

안드로이드 앱에서 파일을 저장하는 경로가 여러곳이다

내부 저장소

내가 만든 애플리케이션에서만 데이터를 읽고 쓸 수 있다.

캐쉬

1
File Context.getCacheDir()

파일경로 : /data/data/패키지이름/cache

데이터베이스

1
File Context.getDatabasePath(String name)

파일경로 : /data/data/패키지이름/databases

일반 파일

1
File Context.getFilesDir()

파일경로 : /data/data/패키지이름/files

이 경로는 Context.openFileOutput(String, int) 과 동일하다

1
File Context.getFileStreamPath(String name)

파일경로 : /data/data/패키지이름/files/파일이름

외부 저장소 - 공용 영역

애플리케이션을 삭제해도 데이터는 남아있다.

최상위 경로

외부 저장소(SD카드)의 최상위 경로를 반환한다.

1
static File Environment.getExternalStorageDirectory()
1
static File Environment.getExternalStoragePublicDirectory(String type)
각 인자 및 경로
  • Environment.DIRECTORY_ALARMS : 알람으로 사용할 오디오 파일 저장/mnt/sdcard/Alarms
  • Environment.DIRECTORY_DCIM : 카메라로 촬영한 사진 저장/mnt/sdcard/DCIM
  • Environment.DIRECTORY_DOWNLOADS : 다운로드한 파일 저장/mnt/sdcard/Download
  • Environment.DIRECTORY_MUSIC : 음악 파일 저장/mnt/sdcard/Music
  • Environment.DIRECTORY_MOVIES : 영상 파일 저장/mnt/sdcard/Movies
  • Environment.DIRECTORY_NOTIFICATIONS : 알림음으로 사용할 오디오 파일 저장/mnt/sdcard/Notifications
  • Environment.DIRECTORY_PICTURES : 그림 파일 저장/mnt/sdcard/Pictures
  • Environment.DIRECTORY_PODCASTS : 팟캐스트 파일 저장/mnt/sdcard/Podcasts

외부 저장소 - 애플리케이션 고유 영역

이 영역에 저장된 데이터는 애플리케이션이 삭제될 때 같이 삭제되며
다른 애플리케이션에서 해당 데이터에 접근하는 것이 가능하다.

특정 데이터를 저장하는 영역

  • 애플리케이션 고유 영역에도 공용 영역과 마찬가지로 각 데이터 유형별로 데이터를 저장하는 표준 디렉터리를 제공한다.

    1
    File Context.getExternalFilesDir(String type)
  • Environment.DIRECTORY_ALARMS/mnt/sdcard/Android/data/패키지 이름/files/Alarms

  • Environment.DIRECTORY_DCIM /mnt/sdcard/Android/data/패키지 이름/files/DCIM

  • Environment.DIRECTORY_DOWNLOADS/mnt/sdcard/Android/data/패키지 이름/files/Download

  • Environment.DIRECTORY_MUSIC /mnt/sdcard/Android/data/패키지 이름/files/Music

  • Environment.DIRECTORY_MOVIES/mnt/sdcard/Android/data/패키지 이름/files/Movies

  • Environment.DIRECTORY_NOTIFICATIONS /mnt/sdcard/Android/data/패키지 이름/files/Notifications

  • Environment.DIRECTORY_PICTURES /mnt/sdcard/Android/data/패키지 이름/files/Pictures

  • Environment.DIRECTORY_PODCASTS/mnt/sdcard/Android/data/패키지 이름/files/Podcasts

  • null/mnt/sdcard/Android/data/패키지 이름/files

캐시 데이터를 저장하는 영역

  • 애플리케이션에서 사용하는 임시 데이터를 외부 저장소에 저장한다.
    1
    File Context.getExternalCacheDir()