I can't see what your problem is, you have only described the solution. Using a directory as a high level index is a common enough solution, and if the modules you mention resolve the data in the way you wish then why go for anything more complex? Keep it simple.
On the other hand, if there is some feature you need that these modules do not supply then ask away. Right now it is hard to see what you need that you do not have.