due accorgimenti:
1) per una prima verifica - se davvero vedi l'output che dici - stampa anche il parametro $path prima dell'assegnamento di $handle, per vederne il valore all'ingresso della funzione
2) tieni conto che una ricorsione di questo tipo potrebbe creare problemi perchè lasci aperti gli handle sul filesystem durante le chiamate e c'è un limite per questo (se ci fossero troppe cartelle annidate potresti superarlo)