Manipulando arquivos de um diretorio

Opa.
Queria fazer uma aplicacao que a partir de um diretorio dado pelo usuário, o aplicativo caminhe por todos os sub-diretorios olhando todos os arquivos (no meu caso arquivos de musica)
Como eu posso fazer isso? Abrir todos os arquivos de uma pasta?

Outra coisa, queria saber como obter a ID3 tag de uma mp3, provavelmente deve ter alguma classe que faca isso. Alguem sabe?

Por ultimo, queria saber se dar pra fazer diretamente em java o comando de “recortar” do windows.
Ou seja dado um arquivo recortar ele de um lugar e colocar em outro lugar.
Só é possivel fazer isso, escrevendo em outro lugar e apagando o original?

É isso, desde já obrigado pra quem responder!

Abraço