| pathList tree dumpTree | pathList := #('abc\def' 'abc\def\gh' 'abc\def\ij' 'abc\jk\lm' 'de'). tree := Dictionary new. pathList do: [:path | (path subStrings: #($\)) inject: tree into: [:tr :dir | tr at: dir ifAbsentPut: [Dictionary new]]]. dumpTree := [:tr :lev | tr keys asSortedCollection do: [:key | Transcript crtab: lev; show: key. (tr at: key) ifNotEmptyDo: [:child | dumpTree copy fixTemps value: child value: lev + 1]]]. World findATranscript: nil. dumpTree copy fixTemps value: tree value: 0 "=> abc def gh ij jk lm de "