Flutter Web中如何提取FilePicker选中文件的文件名?
解决方案
首先明确两个关键要点:
FilePickerResult?.files返回的是List<PlatformFile>类型集合,每个PlatformFile对象自带name属性,这就是你要的文件名- 必须先处理
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
相关产品推荐
相关产品推荐

