ti potrebbe sicuramente venire utile una funzione ricorsiva che va sprofondando in tutte le sottocartelle di una determinata directory e ne elenca i nomi. Se non ci riesci dovrei averla da qualche parte, altrimenti non dovrei metterci molto a riscriverla.