问题描述
我正在开发订单应用程序,正确发布订单后,我想在本地保存一些数据以备将来使用。为了实现这一点,我通过使用以下代码中定义的writeGlobals()函数来使用App的Document文件夹中存储的ini文件。我正在使用path_provider和ini包。我的fileutil软件包如下:
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:ini/ini.dart';
import '../global.dart';
Future<String> get _localPath async {
final directory = await getApplicationDocumentsDirectory();
return directory.path;
}
Future<File> get _localGlobalsFile async {
final path = await _localPath;
return File('$path/globals.ini');
}
Future readGlobals() async {
final path = await _localGlobalsFile;
// ignore: unrelated_type_equality_checks
if (File('$path').exists() == true) {
_readGlobals();
} else
print(path.toString() + ' does not exist.');
}
_readGlobals() async {
var file = await _localGlobalsFile;
Config config = new Config.fromStrings(file.readAsLinesSync());
glbShipCity = config.get("cart","glbShipCity");
glbShipHood = config.get("cart","glbShipHood");
glbPayType = config.get("cart","glbPayType");
glbName = config.get("cart","glbName");
glbPhone = config.get("cart","glbPhone");
glbStreet = config.get("cart","glbStreet");
glbNumber = config.get("cart","glbNumber");
glbCompl = config.get("cart","glbCompl");
glbRef = config.get("cart","glbRef");
glbCEP = config.get("cart","glbCEP");
glbEmail = config.get("cart","glbEmail");
glbCPF = config.get("cart","glbCPF");
print("globals: ${config.get("cart","glbShipCity")}");
print("globals: ${config.toString()}");
}
Future writeGlobals() async {
final file = await _localGlobalsFile;
Config config = new Config();
config.addSection("cart");
config.set("cart","glbShipCity",glbShipCity);
config.set("cart","glbShipHood",glbShipHood);
config.set("cart","glbPayType",glbPayType);
config.set("cart","glbName",glbName);
config.set("cart","glbPhone",glbPhone);
config.set("cart","glbStreet",glbStreet);
config.set("cart","glbNumber",glbNumber);
config.set("cart","glbCompl",glbCompl);
config.set("cart","glbRef",glbRef);
config.set("cart","glbCEP",glbCEP);
config.set("cart","glbEmail",glbEmail);
config.set("cart","glbCPF",glbCPF);
print('Writing to ${file.path}');
print("globals: ${config.toString()}");
return file.writeAsstring(config.toString());
}
所有glb *变量都是全局定义的,并且在应用程序的每个其他部分都能很好地工作。 ini文件的结构也正确。 一切都可以编译并正常运行,除了没有任何东西写入文件夹的事实(不存在-或至少我看不到它-顺便说一句;我认为它将在安装应用程序时创建) ...)。
函数writeGlobals()也不会引发任何错误,但是不会写入文件。 这些问题在仿真器和实际设备上均会发生。 所以我的问题是:
感谢旅行帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)