Je pensais que ce serait assez simple, mais je n'arrive pas à comprendre cela. J'ai un File file
et il a un chemin file.path
qui crache quelque chose comme /storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png
mais je n'arrive pas à trouver quoi que ce soit pour obtenir juste ca04f332.png
.
Vous pouvez utiliser la fonction basename
de Dart bibliothèque de chemins :
File file = new File("/dir1/dir2/file.ext");
String basename = basename(file.path);
# file.ext
Depuis la version Dart 2.6
a été annoncé et est disponible pour la version flutter 1.12
et supérieur, vous pouvez utiliser les méthodes extension
. Il fournira une solution plus lisible et globale à ce problème.
file_extensions.Dart
:
import 'Dart:io';
extension FileExtention on FileSystemEntity{
String get name {
return this?.path?.split("/")?.last;
}
}
et name
getter est ajouté à tous les objets fichier. Vous pouvez simplement appeler name
sur n'importe quel fichier.
main() {
File file = new File("/dev/Dart/work/hello/app.Dart");
print(file.name);
}
Lisez le document pour plus d'informations.
Remarque: Étant donné que extension
est une nouvelle fonctionnalité, elle n'est pas encore entièrement intégrée aux IDE et peut ne pas être reconnue automatiquement. Vous devez importer votre extension
manuellement où vous en avez besoin. Assurez-vous simplement que le fichier d'extension est importé:
import 'package:<your_extention_path>/file_extentions.Dart';
File file = new File("/storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png");
String fileName = file.path.split('/').last;
print(fileName);
sortie = ca04f332.png