在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误
Posted
技术标签:
【中文标题】在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误【英文标题】:Creation failed error when trying to create a JSON file as the application first loads 【发布时间】:2019-06-09 23:10:37 【问题描述】:我正在尝试创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建几个 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)
【问题讨论】:
【参考方案1】:您需要先申请权限。
你可以使用这个包: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")
【讨论】:
谢谢,我会看看这个。如果我想从我的应用程序创建的文件中读取值,我需要ReadExternalStorage
是的,您需要在清单中添加此权限:android.permission.READ_EXTERNAL_STORAGE
我仍然遇到同样的错误。当我为读写打印getPermissionStatus
时,我在控制台中得到以下信息:PermissionStatus.authorized
谢谢你,成功了。我还有一个快速的问题。如果我使用的是模拟器,我在哪里可以找到我刚刚在我的电脑上创建的文件。当我打印path
时,我得到了/data/...
,我似乎找不到。以上是关于在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误的主要内容,如果未能解决你的问题,请参考以下文章
Python json.load JSONDecodeError:尝试加载多个 json 字典时出现额外数据错误
尝试将 csv 文件加载到雪花数据库时出现“在预期解析列时到达记录结尾”错误