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

如何将FileInfo读取RouterDb文件的代码转为MAUI等效实现?

MAUI读取Resources.Raw中RouterDb文件的等效实现

直接用MAUI的FileSystem.OpenAppPackageFileAsync方法获取资源流,再传入Itinero的RouterDb.Deserialize方法即可,代码如下:

using Itinero;
using System.IO;

// 异步读取并反序列化RouterDb
var routerDb = await ReadRouterDbFromRawAsync();

async Task<RouterDb> ReadRouterDbFromRawAsync()
{
    // 打开Raw目录下的gb.routerdb文件流
    using var stream = await FileSystem.OpenAppPackageFileAsync("gb.routerdb");
    // 反序列化为RouterDb对象
    return RouterDb.Deserialize(stream);
}

关键注意事项

  • 确认文件的Build Action:右键gb.routerdb→属性,将Build Action设置为MauiAsset(这是Resources/Raw目录下文件的默认设置,无需手动修改,但要确认)。
  • 文件名大小写:跨平台环境下(如Android、iOS)资源路径区分大小写,确保代码中的文件名和实际文件名完全一致。
  • 异步调用:OpenAppPackageFileAsync是异步方法,需在异步上下文(如async Task方法)中调用,避免阻塞UI线程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:54:19