如何解决如何将INI文件写入App文档目录?
我正在开发订单应用程序,正确发布订单后,我想在本地保存一些数据以备将来使用。为了实现这一点,我通过使用以下代码中定义的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()也不会引发任何错误,但是不会写入文件。 这些问题在仿真器和实际设备上均会发生。 所以我的问题是:
- 我需要明确创建documente文件夹吗?
- 该应用程序必须具有一些特殊权限吗?在这种情况下,我该如何提出要求?
感谢旅行帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。