我想这应该是很简单的,但是似乎不能得到这个,我有一个File file,它有一个路径file.path,它会吐出类似/storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png的东西,但是我似乎找不到任何东西来得到ca04f332.png。
File file
file.path
/storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png
ca04f332.png
7nbnzgx91#
File file = new File("/storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png"); String fileName = file.path.split('/').last; print(fileName);
输出= ca04f332.png
6fe3ivhb2#
由于Dart版本2.6已经发布,并且它可以用于flutter版本1.12和更高版本,你可以使用extension方法。它将为这个问题提供一个更具可读性和全局性的解决方案。file_extensions.dart:
2.6
1.12
extension
file_extensions.dart
import 'dart:io'; extension FileExtention on FileSystemEntity{ String get name { return this?.path?.split("/")?.last; } }
并且name getter被添加到所有文件对象中。
name
main() { File file = new File("/dev/dart/work/hello/app.dart"); print(file.name); }
有关详细信息,请参阅document。
**注意:**由于extension是一个新特性,它还没有完全集成到IDE中,并且可能无法自动识别。您必须在需要时手动导入您的extension。只需确保导入了扩展文件:
import 'package:<your_extention_path>/file_extentions.dart';
wvyml7n53#
File file = File('/foo/bar/baz/my_image.jpg'); String fileName = file.path.split(Platform.pathSeparator).last; // my_image.jpg
1.创建扩展名:
extension FileEx on File { String get name => path.split(Platform.pathSeparator).last; }
2.用途:
File file = File('/foo/bar/baz/my_image.jpg'); String fileName = file.name; // my_image.jpg
kulphzqa4#
简单的方法来获得名称或任何其他文件处理操作。我推荐使用这个插件:https://pub.dev/packages/file_support
main() { String filename= FileSupport().getFileNameWithoutExtension(<File Object>); }
vc9ivgsu5#
您可以使用扩展方法无需使用任何包
创建如下方法
extension FileNameExtension on File { String getFileName() { String fileName = path.split('/').last; return fileName; } }
实施
File file = File("yourpath/example.pdf"); file.getFileName() // result => example.pdf
pgccezyw6#
我遇到了同样的问题。在Web上,应用程序在另一个文件夹资产内创建文件夹资产。我已经将文件从子资产文件夹移动到父资产文件夹。enter image description here
ve7v8dk27#
您可以使用dart path library中的basename函数:
basename
import 'package:path/path.dart'; File file = new File("/dir1/dir2/file.ext"); String basename = basename(file.path); # file.ext
7条答案
按热度按时间7nbnzgx91#
输出= ca04f332.png
6fe3ivhb2#
由于Dart版本
2.6
已经发布,并且它可以用于flutter版本1.12
和更高版本,你可以使用extension
方法。它将为这个问题提供一个更具可读性和全局性的解决方案。file_extensions.dart
:并且
name
getter被添加到所有文件对象中。有关详细信息,请参阅document。
**注意:**由于
extension
是一个新特性,它还没有完全集成到IDE中,并且可能无法自动识别。您必须在需要时手动导入您的extension
。只需确保导入了扩展文件:wvyml7n53#
直接道:
使用分机:
1.创建扩展名:
2.用途:
kulphzqa4#
简单的方法来获得名称或任何其他文件处理操作。我推荐使用这个插件:https://pub.dev/packages/file_support
vc9ivgsu5#
您可以使用扩展方法无需使用任何包
创建如下方法
实施
pgccezyw6#
我遇到了同样的问题。在Web上,应用程序在另一个文件夹资产内创建文件夹资产。我已经将文件从子资产文件夹移动到父资产文件夹。enter image description here
ve7v8dk27#
您可以使用dart path library中的
basename
函数: