android - 在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误
问题描述
我正在尝试创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建几个 JSON 文件。但是,当我通过 Android Studio Emulator 运行它时,我收到以下错误:
代码:
import 'dart:io';
import 'package:path_provider/path_provider.dart';
createFile() async {
//Get device document directory path
final directory = await getApplicationDocumentsDirectory();
//Create savedSettings.json File
if (File('$directory/savedSettings.json').existsSync()) {
print("This file already exists");
} else {
File('$directory/savedSettingsTest.json').create(recursive: true);
}
}
错误:
Dart 错误:未处理的异常:FileSystemException:创建失败,路径 = '目录:''(操作系统错误:只读文件系统,errno = 30)
解决方案
您需要先请求权限。
你可以使用这个包: https ://pub.dartlang.org/packages/simple_permissions
这是您必须在AndroidManifest.xml
文件中添加的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这是你必须使用的枚举
WriteExternalStorage
这里有示例代码:
https://pub.dartlang.org/packages/simple_permissions#-example-tab-
不要忘记提取路径Directory
:
final directory = await getApplicationDocumentsDirectory();
final String path = directory.path;
File("$path/savedSettings.json")
推荐阅读
- sql - SQL 禁用重复行 (Postgres)
- android - 如何从 url android 下载图像
- javascript - Javascript foreach背景颜色更改
- jsf - Primefaces 的内容安全策略默认设置限制 Bootsfaces 脚本
- git - 如何格式化 git diff 的输出
- python - 从带有混合分隔符的 pandas DataFrame 中挑选出值
- react-native - Redux 状态下的数组,React
- c# - 如何获取用户输入以将我的验证方法用于登录控制台应用程序?
- arrays - C 中的 API 来模拟返回数组的函数
- javascript - 自动完成在本地主机上工作,但不在服务器 ASP.NET 上