Flutter/Dart - 파일, 디렉토리 삭제

Dart에서 파일을 삭제하는 방법에 대해서 알아보겠습니다.

1. File, Directory 객체 생성

Dart에서 파일에 접근하려면 먼저 'dart:io'를 import해야 합니다.

그리고 아래와 같이 File(path)처럼 상대 경로나 절대 경로를 입력하여 File 객체를 생성해야 합니다.

  • File 객체에서 read, write, delete 등의 메소드 제공
  • File(test.txt)는 상대 경로로, 프로젝트의 Working Directory와 같은 경로의 test.txt 파일을 의미함
  • 절대 경로는 File('C:\\YourDir\\test.txt'); 처럼 입력할 수 있음
import 'dart:io';

void main() {
  File file = File('test.txt');
}

Directory

디렉토리는 Directory(path)로 경로를 전달하여 생성합니다.

Directory dir = Directory('dir path');

2. 파일 삭제

File.deleteSync()는 해당 경로의 파일을 동기적으로 삭제합니다.

import 'dart:io';

void main() {

  File file = File('test.txt');

  // 동기적인 방식으로, 해당 경로의 파일 삭제
  file.deleteSync();
}

위 코드를 실행하면, 파일이 삭제된 것을 확인할 수 있습니다.

파일 존재 유무 확인 후 삭제

만약 파일이 존재하는지 확인하고 삭제하고 싶을 때는 File.existsSync()를 사용하여 파일의 존재 유무를 먼저 확인할 수 있습니다.

  • existsSync()는 디렉토리가 존재할 때 true 리턴
import 'dart:io';

void main() {

  File file = File('test.txt');

  if (file.existsSync()) {
      // 해당 경로의 파일 삭제
      file.deleteSync();
  }
}

3. 디렉토리 삭제

Directory.deleteSync()는 해당 경로의 디렉토리를 동기적으로 삭제합니다.

  • 디렉토리가 비어있지 않으면 삭제 실패함
import 'dart:io';

void main() {

  Directory dir = Directory('aaaa');

  // 동기적인 방식으로, 해당 경로의 디렉토리 삭제
  dir.deleteSync();
}

디렉토리 및 하위 파일들 모두 삭제

deleteSync(recursive: true) 처럼 recursive: true를 인자로 전달하면, 디렉토리 하위에 파일들이 있어도 재귀적으로 모두 삭제합니다.

import 'dart:io';

void main() {

  Directory dir = Directory('aaaa');

  // 해당 경로의 디렉토리와 하위 파일들 모두 삭제
  dir.deleteSync(recursive: true);
}

파일 존재 후 삭제

Directory.existsSync()로 디렉토리가 존재하는지 먼저 확인하고 삭제를 할 수 있습니다.

  • existsSync()는 디렉토리가 존재할 때 true 리턴
import 'dart:io';

void main() {

  Directory dir = Directory('aaaa');
  if (dir.existsSync()) {
    dir.deleteSync(recursive: true);
  }
}
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha