Estou fazendo uma aplicação que necessito armazenar no banco de dados o caminho onde estão armazenadas as fotos tiradas com a câmera. Como faço para obter este caminho?
Estou fazendo uma aplicação que necessito armazenar no banco de dados o caminho onde estão armazenadas as fotos tiradas com a câmera. Como faço para obter este caminho?
Olá, Edgar
Não recomendo gravar o caminho inteiro do arquivo porque, como vimos no curso, o diretório é determinado pelo próprio sistema operacional android, pela expressão:
Android.OS.Environment.GetExternalStoragePublicDirectory(
Android.OS.Environment.DirectoryPictures), "Imagens");
O código completo está na classe MainActivity.cs
:
private static Java.IO.File PegarArquivoImagem()
{
Java.IO.File arquivoImagem;
Java.IO.File diretorio = new Java.IO.File(
Android.OS.Environment.GetExternalStoragePublicDirectory(
Android.OS.Environment.DirectoryPictures), "Imagens");
if (!diretorio.Exists())
diretorio.Mkdirs();
arquivoImagem =
new Java.IO.File(diretorio, "MinhaFoto.jpg");
return arquivoImagem;
}
O que eu faria é gravar o nome da pasta "MinhaPasta" + barra + nome do arquivo. Exemplo:
string nomeArquivo = "MinhaFoto.jpg";
Imagem imagem = new Model.Imagem();
imagem.Caminho = $"MinhaPasta\{nomeArquivo }";
E para recuperar o arquivo, eu faria o contrário, restaurando o diretório de imagens do Android:
Java.IO.File diretorio = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures));
var arquivoImagem =
new Java.IO.File(diretorio, imagem.Caminho);