Flutter:获取文件的文件名

问题描述 投票:0回答:7

我认为这会非常简单,但似乎无法理解。我有一个

File file
,它有一条路径
file.path
,它会输出类似
/storage/emulated/0/Android/data/my_app/files/Pictures/ca04f332.png
的东西,但我似乎找不到任何东西来获得
ca04f332.png

filenames flutter
7个回答
191
投票

您可以使用 dart path 库中的

basename 函数:

import 'package:path/path.dart';

File file = new File("/dir1/dir2/file.ext");
String basename = basename(file.path);
# file.ext

80
投票
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


12
投票

由于 Dart 版本

2.6
已经发布,并且可用于 flutter 版本
1.12
及更高版本,您可以使用
extension
方法。它将为这个问题提供一个更具可读性和全局性的解决方案。

file_extensions.dart

import 'dart:io';

extension FileExtention on FileSystemEntity{
  String get name {
    return this?.path?.split(Platform.pathSeparator)?.last;
  }
}

name
getter 被添加到所有文件对象中。您只需对任何文件调用
name
即可。

main() {
  File file = new File("/dev/dart/work/hello/app.dart");
  print(file.name);
}

阅读文档以获取更多信息。

注: 由于

extension
是一个新功能,它尚未完全集成到 IDE 中,并且可能无法自动识别。您必须在需要的地方手动导入
extension
。只需确保扩展文件已导入:

import 'package:<your_extention_path>/file_extentions.dart';

6
投票

直接方式:

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

1
投票

获取名称或任何其他文件处理操作的简单方法。我建议使用此插件:https://pub.dev/packages/file_support

main() {
  String filename= FileSupport().getFileNameWithoutExtension(<File Object>);
}

0
投票

可以使用扩展方法无需使用任何包

像这样创建方法

extension FileNameExtension on File {
  String getFileName() {
    String fileName = path.split('/').last;
    return fileName;
  }
}

实施

File file = File("yourpath/example.pdf");
file.getFileName() // result =>  example.pdf

0
投票

你好,我如何在 android 和 flutter 中找到文件的卷轴路径?

© www.soinside.com 2019 - 2024. All rights reserved.