[flutter] 플러터에서 path_provider를 이용하여 파일 복사하기

플러터(Flutter)는 모바일 애플리케이션을 개발하기 위한 프레임워크입니다. 이번에는 플러터에서 path_provider 패키지를 사용하여 파일을 복사하는 방법을 알아보겠습니다.

1. path_provider 패키지 추가하기

pubspec.yaml 파일을 열고 path_provider 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  path_provider: ^2.0.2

저장 후 패키지를 가져오기 위해 flutter pub get 명령을 실행합니다.

2. 파일 복사하기

path_provider 패키지를 사용하여 디바이스의 특정 경로에 있는 파일을 복사할 수 있습니다. 다음은 파일을 복사하는 간단한 예제입니다.

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

class FileCopyPage extends StatefulWidget {
  @override
  _FileCopyPageState createState() => _FileCopyPageState();
}

class _FileCopyPageState extends State<FileCopyPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('File Copy'),
      ),
      body: Center(
        child: RaisedButton(
          onPressed: () async {
            // 파일 복사
            await copyFile();
          },
          child: Text('Copy File'),
        ),
      ),
    );
  }

  Future<void> copyFile() async {
    try {
      // path_provider 패키지를 사용하여 디바이스의 임시 디렉토리 경로 가져오기
      Directory tempDir = await getTemporaryDirectory();

      // 복사할 파일 경로 지정
      String filePath = '<원본 파일 경로>';
      
      // 원본 파일을 임시 디렉토리로 복사
      await File(filePath).copy('${tempDir.path}/new_file.txt');

      // 복사된 파일 경로 출력
      print('Copied file path: ${tempDir.path}/new_file.txt');
    } catch (e) {
      print(e);
    }
  }
}

copyFile() 함수에서는 path_provider 패키지의 getTemporaryDirectory() 함수를 사용하여 디바이스의 임시 디렉토리 경로를 가져옵니다. 그리고 File 클래스의 copy() 함수를 사용하여 원본 파일을 임시 디렉토리로 복사합니다.

3. 실행하기

위의 예제 코드를 실행하여 파일 복사 기능을 테스트해보세요. 버튼을 클릭하면 원본 파일이 임시 디렉토리로 복사되고, 복사된 파일의 경로가 출력될 것입니다.

참고 자료