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

.NET MAUI应用离线时无法从AppDataDirectory加载图片至Image视图

.NET MAUI 从AppDataDirectory加载图片的解决方案

首先明确:.NET MAUI完全支持从FileSystem.AppDataDirectory目录加载图片,你的问题出在FileImageSource的用法上,而非目录本身不被支持。

问题原因

FileImageSource的File属性设计用于加载应用内嵌资源、本地资源目录的相对路径,并不直接支持传入完整的绝对文件路径。这就是你硬编码绝对路径后无法加载的核心原因。

解决方法

方法1:改用UriImageSource加载绝对路径

直接通过file://协议的URI指向目标文件,这是加载私有数据目录文件的可靠方式:

<Image WidthRequest="30" HeightRequest="30">
    <Image.Source>
        <UriImageSource Uri="file:///data/user/0/mytestapp/files/Icontest.svg" />
    </Image.Source>
</Image>

如果是绑定场景,后台代码拼接完整URI更灵活:

string imageFullPath = Path.Combine(FileSystem.AppDataDirectory, "Icontest.svg");
YourImage.Source = new UriImageSource { Uri = new Uri($"file://{imageFullPath}") };

方法2:验证文件存在性(排查辅助)

如果仍无法加载,建议先确认文件确实存在于目标路径,可通过代码校验:

string imagePath = Path.Combine(FileSystem.AppDataDirectory, "Icontest.svg");
bool fileExists = File.Exists(imagePath);
// 可输出fileExists值到日志或调试面板,确认文件是否正确保存

额外说明

你提到URL源能正常加载SVG,说明.NET MAUI的SVG渲染支持已正常启用,无需额外配置SVG相关项。而URL源缓存不符合需求的问题,改用本地文件加载的方式即可完全规避。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:05:21