Dipende in gran parte da quali operazioni vuoi essere in grado di supportare in modo efficiente. Il tuo approccio attuale renderà più semplice elencare tutti i file all'interno di una directory e tutti i discendenti di una directory.
D'altra parte spostare i file da una directory a un'altra è più doloroso perché non esiste un modificatore atomico che ti permetta di modificare una sottostringa di un campo. Invece, dovrai tirare giù tutte le voci del file, modificarle, quindi reinserirle come aggiornamenti. (Qualcuno mi corregga se ho torto su questo)
Con questa struttura è anche relativamente difficile elencare la struttura delle directory per attraversare. L'unico modo per conoscere ogni cartella è caricare ogni percorso di file e quindi analizzarli per vedere se contengono una nuova cartella.
C'è qualcosa di questo? Forse no, dipende completamente da ciò che stai cercando di fare.
Come altro possibile metodo, vuoi davvero rappresentare una gerarchia? O ottieni una rappresentazione migliore con molte gerarchie più piccole? Se è il secondo, è possibile ottenere risultati migliori memorizzando ciascuna gerarchia come un documento completo, rappresentando la struttura delle cartelle con l'annidamento di documenti o tramite riferimenti padre-figlio.