如何在颤动中提供路径

时间:2018-05-07 06:46:38

标签: dart flutter

我正在Flutter中创建一个测验应用程序,我已经在CSV文件中收集了一些问题。我想将CSV文件存储在firebase中,并通过读取CSV文件将问题显示到应用程序中。但只是为了检查读取文件是否应该如此简单,我试图以这种方式读取一个虚拟文件:

new File('file.txt').readAsString().then((String contents) {
  print(contents);
});
在返回Widget之前从main.dart

。 但是我得到了这个错误:

`FileSystemException: Cannot open file, path = 'file.txt' (OS Error: No such file or directory, errno = 2)`

即使我制作了一个虚拟文件.txt'文件与' main.dart'。

在同一目录中

我尝试过' ./ file.txt'甚至是Windows资源管理器的绝对路径,但似乎没有工作。

如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

path_provider包允许您访问temp和appDir目录

https://pub.dartlang.org/packages/path_provider

Directory tempDir = await getTemporaryDirectory();
String tempPath = tempDir.path;

Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocPath = appDocDir.path;

您可以使用https://pub.dartlang.org/packages/pathjoin()方法以平台相关的方式连接路径,或者只使用字符串连接,如

String filePath = '${appDocDir.path}/file.txt';

new File(filePath).readAsString().then((String contents) {
  print(contents);
});    

答案 1 :(得分:1)

您可以使用 join 安全地连接文件或文件夹:

示例:

import 'package:path/path.dart' as Path;

    String fileName = Path.join('/storage/emulated/0/', '/MyFolder/file.txt');

结果:

fileName = '/storage/emulated/0/MyFolder/file.txt'