StructuredFileRepo is very similar to FlattenedFileRepo. It locates files under a subdirectory, which is constructed as shown in figure 17.
In order to construct a path to a file in platform-independent fashion, StructuredFileRepo uses path separator as defined in File.separatorChar.
Both FlattenedFileRepo and StructuredFileRepo demonstrate two examples of using FileRepo as a base class to define new functionality.