Tento salvar uma imagem localmente usando meu aplicativo MAUI no Android. O teste if (File.Exists(filePath)) é positivo. Mas quando procuro esse arquivo usando um comandante total no Android ou usando o explorador de arquivos no Windows não consigo encontrar o arquivo.
O valor do caminho do arquivo é:
/data/user/0/de.company.appname.beta/files/0001/UserProfileImage.png
Usando o Windows Explorer procurando por "de.company.appname.beta" encontro um caminho como este:
Dieser PC\Franks Galaxy A33 5G\SD-Karte\Android\data\de.company.appname.beta
mas nesta pasta encontro apenas uma pasta "cache" , mas não "files" .
A pesquisa pelo nome do arquivo "UserProfileImage.png" não obteve resultados.
A string filePath que estou passando para SfAvatarView . Não há a imagem certa visível. (É por isso que estou procurando o problema ao salvar a imagem.) Funciona no Windows, não no Android.
Por que não consigo salvar a imagem localmente?
try
{
await File.WriteAllBytesAsync(_personDto.Image, Convert.FromBase64String(cleanPath));
}
Nenhuma exceção é lançada.
Não conheço "SfAvatarView" mas duvido que fique muito longe do Image.
E para fontes do ImageView, o Android gosta de armazenar arquivos em cache. Usando o nome do arquivo, é claro. E a julgar pelo seu nome de arquivo fixo, posso dizer que isso está acontecendo.
Eu tinha duas opções para resolver isso:
A primeira opção é continuar alterando o nome do arquivo, para que ele não seja armazenado em cache. A segunda opção é limpar o diretório de cache.
Optei pela segunda opção:
Enumere todos os arquivos neste diretório:
E execute a exclusão.
Ultimamente, tem havido outras soluções: https://github.com/dotnet/maui/issues/9773