[flutter] 플러터에서 path_provider 사용법

플러터(Flutter) 앱 개발 중 파일 시스템에 접근해야 하는 경우, path_provider 패키지를 사용할 수 있습니다. 이 패키지는 앱의 다양한 디렉토리 경로를 쉽게 찾을 수 있도록 도와줍니다.

이번 포스트에서는 path_provider 패키지의 사용법을 알아보겠습니다.

1. path_provider 패키지 추가하기

먼저, pubspec.yaml 파일에 path_provider 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 path_provider 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.0.5

변경 사항을 저장한 뒤, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드합니다.

2. 디렉토리 경로 가져오기

path_provider 패키지를 이용하여 특정 디렉토리의 경로를 얻어올 수 있습니다. 아래는 몇 가지 주요 디렉토리 경로를 얻어오는 예시입니다.

2.1. 앱의 문서 디렉토리 경로 가져오기

import 'package:path_provider/path_provider.dart';

Future<String> getDocumentsDirectoryPath() async {
  final directory = await getApplicationDocumentsDirectory();
  return directory.path;
}

2.2. 앱의 캐시 디렉토리 경로 가져오기

import 'package:path_provider/path_provider.dart';

Future<String> getCacheDirectoryPath() async {
  final directory = await getTemporaryDirectory();
  return directory.path;
}

2.3. 앱의 외부 저장소 디렉토리 경로 가져오기

import 'package:path_provider/path_provider.dart';

Future<String> getExternalStorageDirectoryPath() async {
  final directory = await getExternalStorageDirectory();
  return directory.path;
}

3. 디렉토리 경로 활용하기

얻어온 디렉토리 경로를 활용하여 파일 생성, 삭제, 읽기, 쓰기 등의 작업을 할 수 있습니다.

아래는 path_provider 패키지를 사용하여 캐시 디렉토리에 파일을 생성하는 예시입니다.

import 'package:flutter/services.dart';
import 'package:path_provider/path_provider.dart';

Future<File> createFileInCacheDirectory(String fileName) async {
  final directory = await getTemporaryDirectory();
  final path = '${directory.path}/$fileName';

  final file = File(path);
  await file.writeAsString('Hello, Path Provider!');

  return file;
}

위의 예시에서는 getTemporaryDirectory() 함수를 사용하여 캐시 디렉토리의 경로를 가져온 후, 해당 경로에 생성할 파일의 경로를 지정하고 파일을 생성하고 있습니다.

마무리

이번 포스트에서는 플러터에서 path_provider 패키지를 사용하는 방법을 알아보았습니다. 이를 통해 앱 내에서 파일 시스템에 접근하고 파일을 생성, 삭제 등의 작업을 수행할 수 있습니다.

path_provider 패키지의 더 자세한 사용법은 공식 문서를 참고하시기 바랍니다.

Happy coding!