FileSystemEntity în Dart

Clasa de bază comună pentru File, Directory și Link; are path, uri, parent, exists, delete, rename, stat.

Sintaxă
abstract class FileSystemEntity
String get path
Uri get uri
Directory get parent

Ce face FileSystemEntity

FileSystemEntity este clasa părinte a lui File, Directory și Link. Membrii comuni (path, parent, exists, delete, rename, stat, absolute) sunt definiți aici. Directory.list() returnează elemente de acest tip; afli tipul concret cu is File sau is Directory.

Getter-ul uri returnează calea ca Uri: o cale absolută devine file:///…, iar caracterele speciale (spațiu, diacritice) sunt codificate (%20, %C8%99). La directoare, uri se termină cu /.

Clasa are și metode statice care lucrează direct cu căi text: isFile, isDirectory, type.

Ce returnează

uri: un Uri pentru cale.

Exemple

Exemplul 1: Elemente de tipuri diferite într-o singură listă

import 'dart:io';

void main() {
  Directory('poze').createSync();
  File('lista.txt').writeAsStringSync('x');
  final List<FileSystemEntity> elemente = [File('lista.txt'), Directory('poze')];
  for (final e in elemente) {
    final tip = switch (e) {
      File() => 'fișier',
      Directory() => 'director',
      _ => 'altceva',
    };
    print('${e.path}: $tip, există: ${e.existsSync()}');
  }
}

Rezultat

lista.txt: fișier, există: true
poze: director, există: true

Exemplul 2: Calea ca Uri

import 'dart:io';

void main() {
  print(File('note.txt').uri);
  print(File('teme de vară/eseu.txt').uri);
  print(Directory('poze').uri);
  print(File('/home/ana/Iași.txt').uri);
  print(File('/home/ana/Iași.txt').uri.pathSegments.last);
}

Rezultat

note.txt
teme%20de%20var%C4%83/eseu.txt
poze/
file:///home/ana/Ia%C8%99i.txt
Iași.txt

Greșeli frecvente

  • Construiești URL-uri file:// lipind text: spațiile și diacriticele rămân necodificate. Folosește uri.

Comenzi înrudite

  • FileSystemEntity.isFile: Metode statice care spun ce se află la o cale: fișier, director, link sau nimic.
  • Directory.list: Listează fișierele și subdirectoarele unui director; cu recursive: true intră și în subdirectoare.
  • File: Clasa File reprezintă un fișier de pe disc prin calea lui; cu ea citești, scrii, copiezi și ștergi fișiere.
  • Directory: Clasa Directory reprezintă un director (folder) de pe disc: îl creezi, îl listezi, verifici dacă există, îl ștergi.