Método para deletar imagem da pasta [Resolvido]

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! :smiley:
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! :slight_smile:

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!