Percorrer Pastas e Copiar

Olá Pessoal,

Estou tendo dificuldades em fazer o seguinte:
A - Diretorio
1 - Diretorio
2 - Diretorio
arq.JPG

B - Diretorio
1 - Diretorio
2 - Diretorio
arq.JPG

O algoritmo teria que chegar ao 3º diretório e copiar todos os arquivos para o diretorio de cima. Porem ao terminar isso deve subir novamente para o B e continuar.

Alguem sabe como poderia ser implementado?

Recursão

public void listFiles(File file){
if(file.isDirectory()){
for(File child : file.list())
      listFiles(child);
}
else
System.out.println(file);
}

Valeu