Iterando arquivos em uma pasta com pastas aninhadas - Cocoa

Preciso acessar todos os arquivos em uma pasta, incluindo os que existem em pastas aninhadas. Uma pasta de exemplo pode ser assim.

animals/
 -k.txt
 -d.jpg
 cat/
   -r.txt
   -z.jpg
   tiger/
      -a.jpg
      -p.pdf
 dog/
   -n.txt
   -f.jpg
 -p.pdf

Diga que eu queria executar um processo em todos os arquivos dentro de "animais" que não sejam pastas. Qual seria a melhor maneira de percorrer a pasta "animals" e todas as suas subpastas para acessar todos os arquivos?

Obrigado

questionAnswers(5)

yourAnswerToTheQuestion