You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Dart创建文件报错:‘Read-only file system’问题排查

Flutter创建文件提示Read-only file system问题解决

你直接用File('mycol.json').create()会尝试在应用的安装目录创建文件,而这个目录是系统保护的只读目录,所以触发了报错。不管是iOS还是Android,Flutter应用都只能在自己沙盒的可读写目录操作文件,比如文档目录、缓存目录。

解决步骤:

  • 先添加path_provider依赖(用来获取应用的可读写目录路径),在pubspec.yaml的dependencies下添加:
    path_provider: ^2.0.15
    
  • 修改你的FileManager类,先获取合法的可读写目录,再拼接文件路径:
import 'dart:convert';
import 'dart:io';
import 'package:path_provider/path_provider.dart';

class FileManager {
  Future<void> createFile() async {
    // 获取应用的文档目录(可读写)
    final directory = await getApplicationDocumentsDirectory();
    // 拼接文件路径
    final file = File('${directory.path}/mycol.json');
    // 创建文件
    await file.create();
  }
}

注意事项:

  • 这个方法是异步的,所以要把createFile改成Future<void>类型,调用的时候要用await
  • Android 10及以上、iOS不需要额外申请文件权限,因为访问的是应用自己的沙盒目录

内容的提问来源于stack exchange,提问作者Icaroto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:35:29