import 'dart:io';
import 'package:path/path.dart';
Future<Map?> readFile(lang) async {
var pathToFile = join(dirname(Platform.script.toFilePath()), 'text', '$lang.toml');
var document = File(pathToFile);
return document;
}
所以,我在我撲根目錄下的文本目錄中包含一些TOML檔案,我沒有無法訪問這些檔案在Linux上,但只要我上運行這個機器人,我收到了(OS Error: No such file or directory, errno = 2),而同樣在網上,但沒有錯誤訊息,它只回傳null,我也試過這個:
var document = File('text/$lang.toml');
再一次,同樣的結果。我已經看到人們為此使用 path_provider 包,但無論如何它都不起作用,而且我還希望具有網路兼容性。有誰知道如何解決這個問題?泰
uj5u.com熱心網友回復:
使用附帶的資產時,不應使用主機的檔案系統。而是使用rootBundlefrom flutter/services。
import 'package:flutter/services.dart';
...
Future<String> readFile(String lang) {
return rootBundle.loadString('text/$lang.toml');
}
假設該檔案位于text/專案根目錄下的目錄中,并且定義在pubspec.yaml:
flutter:
assets:
- text/
它在 Linux 上運行的事實有點巧合,因為您在同一臺機器上運行和開發。此解決方案應該獨立于您的目標平臺而作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350346.html
