Fiz as alterações que vc sugeriu, mas como fica o método deleta agora?
public void deleta(List<String> fotos) {
for(Iterator<String> it = fotos.iterator(); it.hasNext();) {
File destino = new File(pastaImagens, it.hasNext());
try {
destino.delete();
} catch (Exception e) {
throw new RuntimeException("Erro ao deletar imagem", e);
}
}
}
É por ai? Tá acusando a mesma mensagem no “Iterator”.
Use da forma como eu fiz da primeira vez, já que agora você tem uma lista de Strings contendo o caminho de cada imagem.
public void deleta(List<String> fotos) {
for(String foto: fotos) {
File destino = new File(pastaImagens, foto);
try {
destino.delete();
} catch (Exception e) {
throw new RuntimeException("Erro ao deletar imagem", e);
}
}
}
O mais importante não é funcionar em sí, mas você entender. Me pergunta caso você tiver alguma dúvida.
Resolvido Garcia!
Está deletando todas as fotos da pasta, eu não entendi o que este trecho do código faz:
for(String foto: fotos)
Poderia me explicar?
isso itera por todos os elementos da lista fotos, colocando o elemento atual na variavel foto…
Obrigado pelo esclarecimento Lucas!
Complementando, isso é o famoso for-each do Java. O resultado na pratica é o mesmo que:
for(int i=0; i<fotos.size(); i++) {
Foto foto = fotos.get(0);
}
Ou o mesmo que
Iterator itFotos = fotos.iterator();
while(itFotos.hasNext()) {
Foto foto = itFotos.next();
}
Valeu Garcia!
Eu tava tentando com o Iterator, mas tava montado errado, agora com esse novo método que o Java permite fica menos código tb.
Anotei essas dicas pra usar futuramente.
Abraço!