In the POSIX standard we have a commonly implemented tree structure. The name of a file is composed of many parts, in a particular order. To start with this seems like a simple way to avoid having a flat system with all the files in a single mass. I personally think it turns out to be one of the biggest headaches we have. One of the problems with it is that whilst the mechanism scales well in technical terms the usability decreases rapidly.