Ce face FileSystemEntity.isFile
Când ai doar o cale text și nu știi ce este, FileSystemEntity.isFile(cale) și FileSystemEntity.isDirectory(cale) răspund cu true/false. Ambele sunt asincrone; variantele isFileSync și isDirectorySync răspund imediat.
FileSystemEntity.type(cale) dă răspunsul complet: FileSystemEntityType.file, .directory, .link sau .notFound. Este util într-un switch. Există și typeSync.
Parametri
| Parametru | Descriere |
|---|---|
path |
Calea verificată. |
followLinks |
La type: dacă un link simbolic este urmat până la ținta lui. |
Ce returnează
isFile/isDirectory: Future<bool>. type: Future<FileSystemEntityType>.
Exemple
Exemplul 1: Ce se află la fiecare cale
import 'dart:io';
Future<void> main() async {
await Directory('documente').create();
await File('documente/cv.pdf').writeAsBytes([37, 80, 68, 70]);
for (final cale in ['documente', 'documente/cv.pdf', 'lipsa']) {
print('$cale: fișier=${await FileSystemEntity.isFile(cale)}, '
'director=${await FileSystemEntity.isDirectory(cale)}');
}
}
Rezultat
documente: fișier=false, director=true
documente/cv.pdf: fișier=true, director=false
lipsa: fișier=false, director=false
Exemplul 2: type într-un switch
import 'dart:io';
String descrie(String cale) => switch (FileSystemEntity.typeSync(cale)) {
FileSystemEntityType.file => '$cale este un fișier',
FileSystemEntityType.directory => '$cale este un director',
FileSystemEntityType.notFound => '$cale nu există',
_ => '$cale este altceva (link, socket…)',
};
void main() {
Directory('muzica').createSync();
File('playlist.m3u').writeAsStringSync('');
for (final cale in ['muzica', 'playlist.m3u', 'video']) {
print(descrie(cale));
}
print(FileSystemEntity.typeSync('muzica'));
}
Rezultat
muzica este un director
playlist.m3u este un fișier
video nu există
directory
Greșeli frecvente
- Apelezi
isFilefărăawaitîntr-unif: unFuture<bool>nu estebool, iar analizorul dă eroare. FoloseșteawaitsauisFileSync.
Comenzi înrudite
FileSystemEntity: Clasa de bază comună pentru File, Directory și Link; are path, uri, parent, exists, delete, rename, stat.File.exists: Verifică dacă fișierul există pe disc; existsSync returnează direct true sau false.File.stat: Returnează dintr-un singur apel informațiile despre fișier: tip, mărime, date de modificare și permisiuni.