You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Web中如何提取FilePicker选中文件的文件名?

解决方案

首先明确两个关键要点:

  1. FilePickerResult?.files 返回的是 List<PlatformFile> 类型集合,每个 PlatformFile 对象自带 name 属性,这就是你要的文件名
  2. 必须先处理 picked 为 null 的场景(用户可能取消了文件选择操作)

正确的代码实现如下:

FilePickerResult? picked = await FilePicker.platform
    .pickFiles(
      allowMultiple: true,
      type: FileType.custom,
      allowedExtensions: ['mp4', 'avi']);

if (picked != null) {
  // 遍历提取所有选中文件的文件名,存储为字符串列表
  List<String> fileNames = picked.files.map((file) => file.name).toList();
  
  // 示例:打印所有文件名
  print(fileNames);
}

原写法错误原因

你之前的代码 List<File> file_names = picked.files.name.toList(); 存在两处问题:

  • picked.files 是列表结构,不能直接通过 .name 访问属性,需要遍历列表中的每个 PlatformFile 对象单独获取文件名
  • 文件名是字符串类型,而非 File 对象,所以变量类型应该声明为 List<String> 而非 List<File>

内容的提问来源于stack exchange,提问作者Mauro Gentile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:50:26