在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误
Creation failed error when trying to create a JSON file as the application first loads
我正在尝试创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建多个 JSON 文件。但是,当我通过 Android Studio 模拟器 运行 执行此操作时,出现以下错误:
代码:
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 Error: Unhandled exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, 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")
我正在尝试创建一个在应用程序加载时调用的方法。此方法将在应用程序文档目录中创建多个 JSON 文件。但是,当我通过 Android Studio 模拟器 运行 执行此操作时,出现以下错误:
代码:
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 Error: Unhandled exception: FileSystemException: Creation failed, path = 'Directory: '' (OS Error: Read-only file system, 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")