Может из-за этого?
for(File dirs : listDirectories){
listDirectories.add(i);
}
На правильность не претендую, но я бы сделал так:
Set<File> copyListDirectories = new HashSet<>(listDirectories);
for(File dirs : copyListDirectories ){
listDirectories.add(i);
}