首页 > 解决方案 > 如何使用绝对路径打开文件?

问题描述

如何使用绝对路径打开文件?

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)

标签: flutterdart

解决方案


你不能这样做。您无法通过智能手机上部署的应用程序访问本地 PC 上的文件。

由于您的文本文件位于名为 assets 的文件夹中,因此我假设它是您希望与您的应用程序一起部署的某种文件。在颤振中称为“资产”,您可以在有关资产和图像的文档中阅读如何实现这一点。

简而言之,您的 pubspec.yaml 文件需要有一个条目:

flutter:
  assets:
    - assets/sonet.txt

然后您可以使用以下方法在源代码中访问它:

final textFromFile = await rootBundle.loadString('assets/sonet.txt');

推荐阅读