web-dev-qa-db-fra.com

Flutter: obtenir le nom de fichier d'un fichier

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.

10
Jus10

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
33
jspcal

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';
1
Saman Salehi
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

1
0917237