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

如何获取react-native-sqlite-storage创建的手机数据库文件路径?

解决react-native-sqlite-storage数据库文件定位问题

1. 直接从数据库实例获取路径

react-native-sqlite-storage初始化后,可直接从数据库实例拿到准确路径,这是最靠谱的方式:

import SQLite from 'react-native-sqlite-storage';

const db = SQLite.openDatabase(
  {
    name: 'your_database_name.db',
    location: 'default'
  },
  () => {
    // 打印数据库绝对路径
    console.log('数据库路径:', db._path);
  },
  (err) => console.error('打开数据库失败:', err)
);

复制打印出的路径,就能直接定位到文件。

2. 确认不同平台的默认存储目录

react-native-sqlite-storage在Android和iOS的默认存储位置不同,别找错目录:

  • Android:
    • 无root权限时,数据库存在RNFS.ExternalStorageDirectoryPath + '/Android/data/[你的应用包名]/databases/'
    • 有root权限或通过adb访问时,路径为/data/data/[你的应用包名]/databases/
  • iOS:默认在RNFS.DocumentDirectoryPath下,但若初始化时自定义了location参数,需以参数为准。

3. 排查RNFS权限配置

Android需在AndroidManifest.xml添加存储权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Android 10及以上版本,还要在<application>标签内添加:

android:requestLegacyExternalStorage="true"

iOS需在Info.plist添加权限描述:

<key>NSDocumentsFolderUsageDescription</key>
<string>需要访问文档目录以复制数据库文件</string>

4. 遍历所有可能的存储目录

如果以上方法无效,可遍历RNFS提供的所有常用路径,逐一排查:

import RNFS from 'react-native-fs';
import appConfig from './app.json'; // 导入应用配置获取包名

const checkPaths = [
  RNFS.DocumentDirectoryPath,
  RNFS.ExternalDirectoryPath,
  RNFS.CachesDirectoryPath,
  RNFS.LibraryDirectoryPath,
  // Android专属路径
  `${RNFS.ExternalStorageDirectoryPath}/Android/data/${appConfig.name}/databases/`
];

checkPaths.forEach(async (path) => {
  try {
    const files = await RNFS.readDir(path);
    console.log(`目录 ${path} 下的文件:`, files.map(f => f.name));
  } catch (err) {
    console.log(`读取目录 ${path} 失败:`, err);
  }
});

5. 通过模拟器/设备工具直接查看

  • Android模拟器:打开Android Studio的Device File Explorer,导航到/data/data/[你的应用包名]/databases/,可直接查看或导出文件。
  • iOS模拟器:打开Finder,按Cmd+Shift+G,输入~/Library/Developer/CoreSimulator/Devices/,找到对应模拟器设备目录,再进入data/Containers/Data/Application/[应用UUID]/Documents/即可找到数据库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:42:33