Boa tarde pessoal, esse é um código que lista os arquivos de uma pasta, e para cada arquivo dessa pasta, ele confere com os arquivos presentes em uma lista, se tiverem nomes comuns, confere se são diretórios, se for, chamada recursiva, chama um método para comaprar diretórios(Se for preciso posto logo depois), se eles tiverem o mesmo nome e for arquivo, confere se houve modificações, se o arquivo da pasta tiver sido modificado o arquivo da lista é deletado e é acrescentado a lista, o arquivo da pasta.
public ArrayList<File> atualizarLista(ArrayList<File> lista, File pasta)
{
File[] listaPasta = pasta.listFiles();
for(File f1 : listaPasta)
{
int chave = 1;
if(lista.isEmpty())
{
lista.add(f1);
}
else
{
for(File f2 : lista)
{
if(f1.getName().equals(f2.getName()))
{
if(f1.isDirectory() && f2.isDirectory())
{
lista.remove(f2);
lista.addAll(comparaDiretorio(f1, f2));
chave = 0;
}
else
{
if(f1.lastModified() != f2.lastModified())
{
lista.remove(f2);
lista.add(f1);
chave = 0;
}
}
}
}
if(chave == 1)
{
lista.add(f1);
}
}
}
return lista;
}
A exceção ConcurrentModificationException é lançada, creio eu por remover o f2 durante o comando for, mas não consigo solucionar.
Sou novo na área, espero que possam me ajudar.
Agradeço desde já.