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

.NET Maui中获取Resources\Raw目录文件路径的方法

解决方法

标记为MauiAsset的文件是嵌入到应用包里面的,没有可直接访问的物理路径,没法直接用路径打开SQLite连接。正确的做法是先把嵌入的数据库复制到应用的可读写目录,再用这个目录的路径来连接。

具体步骤

  1. 复制嵌入数据库到可读写目录
    先检查目标位置有没有这个数据库,没有的话就从资源里读出来复制过去:
using var stream = await FileSystem.Current.OpenAppPackageFileAsync("example.db3");
string targetPath = Path.Combine(FileSystem.AppDataDirectory, "example.db3");

if (!File.Exists(targetPath))
{
    using var fileStream = File.Create(targetPath);
    await stream.CopyToAsync(fileStream);
}
  1. 用目标路径打开SQLite连接
    现在就可以用复制后的路径创建连接了:
db = new SQLiteConnection(targetPath);

补充说明

  • MauiAsset类型的文件会被打包进APK/IPA这类应用包中,不存在独立的文件系统路径,只能通过流读取。
  • 应用包目录是只读的,就算能拿到路径,SQLite也需要可读写的文件才能正常操作(比如写入数据、建表),所以必须复制到AppDataDirectory这种可读写目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:27:37