我正在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资源管理器的绝对路径,但似乎没有工作。
如何解决这个问题?
答案 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/path的join()
方法以平台相关的方式连接路径,或者只使用字符串连接,如
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'