如何在颤振中提供路径 - 路径组合

Bip*_*pin 5 dart flutter

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

new File('file.txt').readAsString().then((String contents) {
  print(contents);
});
Run Code Online (Sandbox Code Playgroud)

从 main.dart 返回 Widget 之前。但我收到此错误:

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

即使我在与“main.dart”相同的目录中创建了一个虚拟的“file.txt”文件。

我试着做'./file.txt',甚至是windows资源管理器中的绝对路径,但似乎都不起作用。

如何解决这个问题?

Gün*_*uer 10

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;
Run Code Online (Sandbox Code Playgroud)

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

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

new File(filePath).readAsString().then((String contents) {
  print(contents);
});    
Run Code Online (Sandbox Code Playgroud)


liv*_*ove 8

您可以使用 join 安全地加入文件或文件夹:

例子:

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

    String fileName = Path.join('/storage/emulated/0/', 'MyFolder', 'file.txt');
Run Code Online (Sandbox Code Playgroud)

结果:

文件名 = '/storage/emulated/0/MyFolder/file.txt'