Implement recursive ReadDirTree function