본문 바로가기

Flutter-플러터

path_provider , path 패키지를 이용해서 sqlite 백업

반응형

 

 

지금 만들고 있는 가계부 앱에는 백업 기능이 없습니다. 해서 앱내의 sqlite 파일을 기기내로 옮겨서 백업 기능을 구현 중입니다.

 

처음 해보는 기능이라 개념이 잘 안잡혀서 이리저리 헤매고 있네요.. 

 

그래서 이럴 땐 가장 작은 개념부터 공부하는게 좋은 것 같습니다. 

 

path_provider, path 패키지는 앱을 만들 때 무조건 써야 하는 패키지 중 하나 인 것 같습니다. 

 

기기 내부의 데이터 위치와 여러 편의 기능을 제공 해줍니다. 

 

path_provider 

 

  1. 애플리케이션 문서 디렉터리 액세스: getApplicationDocumentsDirectory() 함수를 사용하여 앱의 문서 디렉터리 경로에 액세스할 수 있습니다. 이 디렉터리에는 앱에서 생성된 사용자 데이터 및 파일이 포함됩니다. 예를 들어 데이터베이스 파일이나 설정 파일을 여기에 저장할 수 있습니다.
  2. 임시 디렉터리 액세스: getTemporaryDirectory() 함수를 사용하여 임시 파일이나 캐시 파일을 저장할 임시 디렉터리의 경로에 액세스할 수 있습니다. 이 디렉터리에 저장된 파일은 앱이 종료될 때 자동으로 삭제됩니다.
  3. 외부 저장소 액세스: getExternalStorageDirectory() 함수를 사용하여 외부 저장소(기기의 외부 저장소 또는 SD 카드)에 액세스할 수 있는 디렉터리의 경로를 얻을 수 있습니다. Android에서만 사용할 수 있습니다.
  4. 캐시 디렉터리 액세스: getTemporaryDirectory() 함수와 비슷하지만 일반적으로 앱에 대한 캐시 파일을 저장하는 데 사용됩니다. 이 디렉터리에 저장된 파일은 시스템이 필요에 따라 자동으로 삭제할 수 있습니다.
path
  1. 경로 조작: join() 함수를 사용하여 여러 구성 요소로 경로를 조인할 수 있습니다. 이렇게 하면 플랫폼에 따라 적절한 경로 구분자가 사용됩니다.
  2. 경로 분석: basename(), dirname(), extension() 등의 함수를 사용하여 경로의 기본 이름, 디렉토리 이름 및 확장자를 추출할 수 있습니다.
  3. 상대 경로 및 절대 경로: normalize() 함수를 사용하여 상대 경로를 절대 경로로 변환할 수 있습니다.
  4. 플랫폼 간 호환성: separator 상수를 사용하여 플랫폼에 따라 경로 구분자를 확인할 수 있습니다.

 

 

 

위 두 패키지를 이용해서 현재 사용하고 있는 가계부 백업 기능을 만들었습니다. 

 

후.. IOS 는 잘 작동하는데 안드로이드는 해당 폴더에 파일이 없다고 오류가 뜨네요 ^^;; 

기기 마다 저장되는 폴더가 달라서 기기마다 코드를 다르게 짜야 하는 것 같습니다. 

내일은 안드로이드를 작업해야겠습니다. 

 

 

 

728x90
반응형