我尝试使用 Android 上的 MAUI 应用程序在本地保存图像。测试(File.Exists(filePath)) 是否为正。但是,当我在 Android 上使用 Total Commander 或在 Windows 上使用文件资源管理器搜索此文件时,我找不到该文件。
文件路径的值为:
/data/user/0/de.company.appname.beta/files/0001/UserProfileImage.png
使用 Windows 资源管理器搜索“de.company.appname.beta”,我找到如下路径:
Dieser PC\Franks Galaxy A33 5G\SD-Karte\Android\data\de.company.appname.beta
但在这个文件夹中我只找到一个文件夹“cache”,而不是“files”。
搜索文件名“UserProfileImage.png”没有结果。
我传递给SfAvatarView 的字符串 filePath 。没有可见的正确图像。(这就是为什么我在保存图像时寻找问题的原因。)在 Windows 上它可以工作,但在 Android 上不行。
为什么我无法将图像保存到本地?
try
{
await File.WriteAllBytesAsync(_personDto.Image, Convert.FromBase64String(cleanPath));
}
没有抛出异常。
我不知道“SfAvatarView”,但我怀疑它离图像太远。
对于ImageView的来源,android喜欢缓存文件。当然,使用文件名。从你的固定文件名来看,我可以说它正在发生。
我有两个选择来解决这个问题:
第一个选项是不断更改文件名,因此它不会缓存自身。第二个选项是清除缓存目录。
我选择了第二种选择:
枚举该目录下的所有文件:
并执行删除。
最近,还有其他解决方案: https://github.com/dotnet/maui/issues/9773