首页 > 解决方案 > 在应用程序首次加载时尝试创建 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)

标签: androiddartandroid-emulatorflutter

解决方案


您需要先请求权限。

你可以使用这个包: 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")

推荐阅读