Oi pessoal!
Tenho a url das imagens no banco e preciso que ao deletar os dados do imóvel e das fotos, as imagens da pasta tb sejam deletadas:

O método que faz a remoção do imóvel é este:
public void remove(Long idImovel) {
Imovel imovel = imovelDao.carrega(idImovel);
imovelDao.remove(imovel);
imagens.deleta(imovel); // aqui envia o imovel para o componente Imagens e assim deletar a imagem da pasta
// mensagem de Imovel removido com sucesso
result.include("mensagem", "Imovel removido com sucesso");
// redirecionamento para a listagem de imoveis
result.use(Results.logic()).redirectTo(ImovelController.class).lista();
}
O método deletar do componente:
public void deleta(Imovel imovel) {
// Preciso de um código para recuperar as URL's das imagens que estão no banco e deletar conforme abaixo
// Talvez precise de uma List de objetos fotos
File destino = new File(pastaImagens, urlImagem);
try {
destino.delete();
} catch (Exception e) {
throw new RuntimeException("Erro ao deletar imagem", e);
}
}
O miolo ali no método deleta que eu não estou conseguindo fazer, já que a única coisa que é enviada para o método deleta é “imovel”, precisaria na verdade das URL’s das imagens que estão no banco, sendo que ao deletar o imóvel os dados na tabela foto tb são deletados automáticamente, ai fico sem o caminho para deletar as imagens que estão na pasta.
Tentei algo do tipo:
public void deleta(Imovel imovel) {
File destino = new File(pastaImagens, imovel.getIdImovel() + "." + foto.getNome() + "." + imagem.getFileName());
try {
destino.delete();
} catch (Exception e) {
throw new RuntimeException("Erro ao deletar imagem", e);
}
}
Obviamente não vai funcionar nunca, pois somente o imóvel é passado como parãmetro, faltando o resto.
Alguém pode dar uma dica?
Abraço!!


