flutter - 如何使用绝对路径打开文件?
问题描述
如何使用绝对路径打开文件?
await File('c:/Users/rozerro/AndroidStudioProjects/rxdart_streams/assets/sonet.txt')
.openRead()
.transform(utf8.decoder)
.transform(LineSplitter())
.toList();
也
c:\\Users\\rozerro\\AndroidStudioProjects\\rxdart_streams\\assets\\sonet.txt
错误
E/flutter(4943):[错误:flutter/lib/ui/ui_dart_state.cc(177)]未处理的异常:FileSystemException:无法打开文件,路径='c:/Users/rozerro/AndroidStudioProjects/rxdart_streams/assets/sonet。 txt'(操作系统错误:没有这样的文件或目录,errno = 2)
解决方案
你不能这样做。您无法通过智能手机上部署的应用程序访问本地 PC 上的文件。
由于您的文本文件位于名为 assets 的文件夹中,因此我假设它是您希望与您的应用程序一起部署的某种文件。在颤振中称为“资产”,您可以在有关资产和图像的文档中阅读如何实现这一点。
简而言之,您的 pubspec.yaml 文件需要有一个条目:
flutter:
assets:
- assets/sonet.txt
然后您可以使用以下方法在源代码中访问它:
final textFromFile = await rootBundle.loadString('assets/sonet.txt');
推荐阅读
- c# - 在 DataGridView 中按日期排序
- git - Github - 获取克隆的 git repo 的所有分支并添加为远程源
- php - 如何在不使用 volley 转换为字符串的情况下将位图上传到服务器?
- python - 如何通过 SSH 访问多台 PC,并在每台 PC 中独立运行一个代码库
- tensorflow - 预期 time_distributed_38_input 有 5 个维度,但得到了形状为 (13974, 100, 6, 5) 的数组
- domo - 如何在不全部删除的情况下连续省略某些数据?
- javascript - JS匹配来自不同数组的字符串
- javascript - 表 - 基于列内容长度的列数
- javascript - 如何验证促销输入字段?
- java - ForEach 循环中断和加入线程