Ce face Directory.create
create() creează directorul. Dacă există deja, nu se întâmplă nimic. Fără recursive: true, directorul părinte trebuie să existe; cu recursive: true se creează toată calea (a/b/c). createSync este varianta sincronă.
delete() șterge directorul. Un director care nu este gol se șterge doar cu delete(recursive: true), care șterge definitiv tot ce conține. Fără recursive, ștergerea unui director cu fișiere aruncă FileSystemException. Există și deleteSync.
Parametri
| Parametru | Descriere |
|---|---|
recursive |
La create: creează și părinții. La delete: șterge și conținutul. |
Ce returnează
create: Future<Directory>. delete: Future cu elementul șters.
Exemple
Exemplul 1: Structura unui proiect
import 'dart:io';
Future<void> main() async {
for (final cale in ['site/css', 'site/js', 'site/imagini/2026']) {
await Directory(cale).create(recursive: true);
}
final toate = Directory('site').listSync(recursive: true).map((e) => e.path).toList()..sort();
print(toate.join('\n'));
}
Rezultat
site/css
site/imagini
site/imagini/2026
site/js
Exemplul 2: Ștergerea unui director plin
import 'dart:io';
void main() {
Directory('temp/cache').createSync(recursive: true);
File('temp/cache/a.dat').writeAsStringSync('x');
try {
Directory('temp').deleteSync();
} on FileSystemException catch (eroare) {
print('Fără recursive: ${eroare.osError?.message}');
}
Directory('temp').deleteSync(recursive: true);
print('Mai există: ${Directory('temp').existsSync()}');
}
Rezultat
Fără recursive: Directory not empty
Mai există: false
Greșeli frecvente
- Apelezi
delete(recursive: true)pe o cale construită greșit (de exemplu goală sau.): ștergi tot directorul curent. Verifică întotdeauna calea înainte. - Uiți
recursive: truelacreatepentru o cale cu mai multe niveluri și primeștiPathNotFoundException.
Comenzi înrudite
Directory: Clasa Directory reprezintă un director (folder) de pe disc: îl creezi, îl listezi, verifici dacă există, îl ștergi.Directory.list: Listează fișierele și subdirectoarele unui director; cu recursive: true intră și în subdirectoare.Directory.createTemp: createTemp creează un director nou cu nume unic; Directory.systemTemp este directorul temporar al sistemului.File.create: Creează un fișier gol; cu recursive: true creează și directoarele lipsă de pe cale.