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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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);