File.parent în Dart

parent dă directorul în care se află fișierul; absolute dă același fișier cu calea completă, de la rădăcină.

Sintaxă
Directory get parent
File get absolute

Ce face File.parent

parent returnează un Directory pentru directorul care conține fișierul, calculat doar din text, fără să acceseze discul: pentru date/2026/note.txt este date/2026, iar pentru note.txt este . (directorul curent).

absolute returnează un File cu calea completă: dacă era relativă, i se pune în față directorul curent. Verifică cu isAbsolute dacă o cale este deja completă. Calea absolută depinde de locul în care rulează programul.

Ce returnează

parent: un Directory. absolute: un File.

Exemple

Exemplul 1: Directorul părinte

import 'dart:io';

void main() {
  print(File('date/2026/note.txt').parent.path);
  print(File('date/2026/note.txt').parent.parent.path);
  print(File('note.txt').parent.path);
  print(File('/home/ana/poze/mare.jpg').parent.path);
}

Rezultat

date/2026
date
.
/home/ana/poze

Exemplul 2: Cale relativă și cale absolută

Calea absolută începe cu directorul temporar în care rulează exemplul; afișăm doar partea stabilă.

import 'dart:io';

void main() {
  final f = File('raport.txt');
  final abs = f.absolute;
  print(f.isAbsolute);
  print(abs.isAbsolute);
  print(abs.path.endsWith('${Platform.pathSeparator}raport.txt'));
  print(abs.parent.path == Directory.current.path);
}

Rezultat

false
true
true
true

Exemplul 3: Salvarea unui fișier lângă altul

import 'dart:io';

void main() {
  Directory('proiect/src').createSync(recursive: true);
  final sursa = File('proiect/src/main.dart')..writeAsStringSync('void main() {}');
  final copie = File('${sursa.parent.path}/main_backup.dart');
  sursa.copySync(copie.path);
  print(copie.path);
  print(Directory('proiect/src').listSync().map((e) => e.path).toList()..sort());
}

Rezultat

proiect/src/main_backup.dart
[proiect/src/main.dart, proiect/src/main_backup.dart]

Greșeli frecvente

  • Crezi că parent verifică existența directorului. Calea este doar calculată; directorul poate să nu existe.
  • Afișezi sau salvezi căi absolute într-un program care rulează pe alt calculator: ele diferă de la un sistem la altul.

Comenzi înrudite

  • File: Clasa File reprezintă un fișier de pe disc prin calea lui; cu ea citești, scrii, copiezi și ștergi fișiere.
  • Directory.current: Directorul curent al programului, față de care se interpretează căile relative; se poate și schimba.
  • Platform.pathSeparator: Separatorul folosit în căile de fișiere: „/” pe macOS și Linux, „\” pe Windows.