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

Flutter中sqflite本地数据库存储位置及外部打开方法咨询

问题解答

一、数据库存储位置

代码里通过getDatabasesPath()获取数据库的基础路径,再用join拼接文件名app.db,最终存储路径分平台有所不同:

  • Android:默认存在应用私有目录,路径大致为/data/data/[你的应用包名]/databases/app.db,这个目录默认仅应用自身有权限访问。
  • iOS/macOS:模拟器环境下,路径类似/Users/[你的用户名]/Library/Developer/CoreSimulator/Devices/[设备ID]/data/Containers/Data/Application/[应用ID]/Documents/app.db;真机上则位于应用沙盒的Documents目录内,同样默认仅应用可访问。

二、在应用外部打开该数据库的方法

Android平台

  1. 调试阶段(模拟器/root设备)
    • 打开Android Studio的Device File Explorer,定位到data/data/[你的应用包名]/databases目录,右键点击app.db选择Save As,将文件导出到电脑本地。
    • 用SQLite可视化工具(比如SQLiteStudio、DB Browser for SQLite)打开导出的文件即可。
  2. 非root真机(需修改代码)
    • 可以在代码里添加逻辑,把数据库文件复制到公共存储目录(比如Download文件夹),示例代码如下:
      Future<void> copyDbToPublicDir() async {
        final dbPath = await getDatabasesPath();
        final sourcePath = join(dbPath, "app.db");
        final targetPath = join(await getExternalStorageDirectory()?.path ?? "", "Download/app.db");
        await File(sourcePath).copy(targetPath);
      }
      
    • 调用这个方法后,就能在手机的Download文件夹找到app.db,再通过文件管理器复制到电脑,用SQLite工具打开。

iOS平台

  1. 模拟器环境
    • 直接在Finder里找到前面提到的沙盒Documents目录,复制app.db到本地,用SQLite可视化工具打开即可。
    • 或者通过Xcode的「Devices and Simulators」面板,选中你的应用,点击Download Container导出沙盒包,右键选择「显示包内容」,在Documents目录里找到app.db。
  2. 真机环境
    • 连接真机到电脑,打开Xcode的「Devices and Simulators」面板,选中对应应用点击Download Container导出沙盒包,后续操作和模拟器一致,取出app.db文件到本地打开。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:40:11