Directory în Dart

Clasa Directory reprezintă un director (folder) de pe disc: îl creezi, îl listezi, verifici dacă există, îl ștergi.

Sintaxă
import 'dart:io';

Directory(String path)
Future<bool> exists()
bool existsSync()

Ce face Directory

Directory('poze') creează un obiect care indică spre un director; ca la File, obiectul nu atinge discul. Metodele lui creează directorul (create), îi listează conținutul (list) sau îl șterg (delete).

exists() returnează true doar dacă la cale se află un director; pentru un fișier cu același nume dă false. existsSync() este varianta sincronă.

Parametri

Parametru Descriere
path Calea directorului.

Ce returnează

exists: Future<bool>; existsSync: bool.

Exemple

Exemplul 1: Creare dacă lipsește

import 'dart:io';

Future<void> main() async {
  final d = Directory('exporturi');
  print('Există: ${await d.exists()}');
  if (!await d.exists()) {
    await d.create();
  }
  print('Există: ${await d.exists()}');
  print(d.path);
}

Rezultat

Există: false
Există: true
exporturi

Exemplul 2: Director sau fișier?

import 'dart:io';

void main() {
  File('note').writeAsStringSync('Ana 10');
  Directory('poze').createSync();
  for (final cale in ['note', 'poze', 'lipsa']) {
    print('$cale -> fișier: ${File(cale).existsSync()}, director: ${Directory(cale).existsSync()}');
  }
}

Rezultat

note -> fișier: true, director: false
poze -> fișier: false, director: true
lipsa -> fișier: false, director: false

Greșeli frecvente

  • Scrii fișiere într-un director fără să verifici că există. Creează-l înainte cu create(recursive: true) (nu dă eroare dacă există deja).

Comenzi înrudite

  • Directory.list: Listează fișierele și subdirectoarele unui director; cu recursive: true intră și în subdirectoare.
  • Directory.create: create face un director nou (și părinții lui, cu recursive: true); delete șterge directorul, cu tot conținutul dacă e recursiv.
  • Directory.current: Directorul curent al programului, față de care se interpretează căile relative; se poate și schimba.
  • File: Clasa File reprezintă un fișier de pe disc prin calea lui; cu ea citești, scrii, copiezi și ștergi fișiere.