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.