Jisoo.

기술블로그

Flutter path_provider 패키지 정리


썸네일

Flutter path_provider 패키지 정리

파일 시스템의 경로를 찾아주는 path_provider 패키지를 알아봅시다.


💡 path_provider

path_provider는 현재 앱의 경로를 반환하는 패키지입니다.

지원하는 디렉토리는 다음과 같습니다.

Directory설명
Temporary임시 데이터를 저장하기 위한 디렉토리입니다. 앱이 필요하지 않게 되면 OS가 데이터를 삭제할 수 있습니다.
Application Support애플리케이션이 생성한 지원 파일이나 설정 데이터를 저장하는 디렉토리입니다. 사용자에게 직접 보여지지 않는 데이터 저장에 적합합니다.
Application Library(iOS 및 macOS 전용) 앱의 내부 라이브러리 데이터를 저장하는 디렉토리입니다. 설정 파일 또는 애플리케이션 데이터를 관리하는 데 사용됩니다.
Application Documents애플리케이션이 생성하고 관리하는 문서 파일을 저장하는 디렉토리입니다. 사용자에게 노출될 가능성이 있는 데이터를 저장하는 데 적합합니다.
Application Cache캐시 데이터를 저장하는 디렉토리입니다. 캐시 데이터는 필요에 따라 삭제될 수 있으므로 중요한 데이터를 저장하는 데 사용하지 않습니다.
External Storage(Android 전용) 외부 저장소에 데이터를 저장합니다. 사용자 또는 다른 앱이 접근할 수 있는 데이터를 저장하는 데 사용됩니다.
External Cache Directories(Android 전용) 외부 저장소에 캐시 데이터를 저장합니다. 디렉토리의 데이터는 필요에 따라 삭제될 수 있습니다.
External Storage Directories(Android 전용) 외부 저장소에 앱 관련 데이터를 저장하는 데 사용됩니다. 사용자와 공유되거나 다른 앱에서 접근 가능한 데이터를 저장합니다.
Downloads사용자의 다운로드 디렉토리입니다. 애플리케이션이 다운로드한 파일을 저장하거나 사용자가 접근할 파일을 저장하는 데 사용됩니다.

안드로이드의 경우 반환하는 경로는 다음과 같습니다.

1final a = await getTemporaryDirectory(); 2final b = await getApplicationSupportDirectory(); 3final c = await getApplicationCacheDirectory(); 4final d = await getApplicationDocumentsDirectory(); 5// final e = await getLibraryDirectory(); 6final f = await getExternalCacheDirectories(); 7final g = await getExternalStorageDirectories(); 8final h = await getExternalStorageDirectory(); 9final i = await getDownloadsDirectory(); 10 11[log] a: Directory: '/data/user/0/com.example.practice_flutter_screenshot/cache' 12[log] b: Directory: '/data/user/0/com.example.practice_flutter_screenshot/files' 13[log] c: Directory: '/data/user/0/com.example.practice_flutter_screenshot/cache' 14[log] d: Directory: '/data/user/0/com.example.practice_flutter_screenshot/app_flutter' 15[log] f: [Directory: '/storage/emulated/0/Android/data/com.example.practice_flutter_screenshot/cache'] 16[log] g: [Directory: '/storage/emulated/0/Android/data/com.example.practice_flutter_screenshot/files'] 17[log] h: Directory: '/storage/emulated/0/Android/data/com.example.practice_flutter_screenshot/files' 18[log] i: Directory: '/storage/emulated/0/Android/data/com.example.practice_flutter_screenshot/files/downloads'

플랫폼 별로 접근 불가능한 디렉토리에 접근 시 에러를 발생합니다.

내부 저장소는 /data로 시작하며 외부 저장소는 /storage로 시작하는 것을 알 수 있습니다.

항목내부 디렉토리 (/data)외부 디렉토리 (/storage)
경로/data/user/<패키지명>//storage/emulated/0/, /sdcard/
용도앱 전용 데이터 (설정, 캐시, DB 등)사용자와 공유 가능한 데이터 (사진, 파일 등)
보안높음 (Sandbox 환경)낮음 (다른 앱 및 사용자 접근 가능)
권한 필요 여부불필요필요 (외부 저장소 권한)
삭제 여부앱 삭제 시 자동 제거앱 삭제 후에도 남을 수 있음
접근성사용자나 다른 앱은 접근 불가사용자나 다른 앱이 접근 가능
저장 공간내부 저장소 공간 제한더 넓은 저장 공간 가능
사용 예시세션 정보, 비밀번호, DB, 로컬 설정 파일 등이미지, 동영상, PDF 등

💡 안드로이드 저장소 권한 정리

안드로이드 런타임 권한 요청 정리 Velog


💡 마무리

플러터 path_provider 패키지에 대해 알아보았습니다.

Flutter image_gallery_saver 패키지 빌드 에러 해결방법

1


Flutter 시리즈의 다른 포스트

썸네일-0

Flutter image_gallery_saver 패키지 빌드 에러 해결방법

image_gallery_saver 빌드 에러를 해결해 봅시다.


2025년 1월 16일

썸네일-1

Flutter 카메라 사진 찍고 저장하기

플러터로 카메라 앱을 만들어봅시다.


2025년 1월 14일