Well, binary reader can not determine which data type it reads on its own. It simply reads a sequence of bytes. You are the one, who should interpret those bytes. If the protocol used to write your source file is unknown to you, then your best bet is to try figuring it out by trial and error, doing educated guesses. You can assume that the directory entry goes first, you can assume that file entries start after the first content index of first directory entry. Etc. Then you should run your application and see, if those guesses make sense.
If there was no protocol in the first place, and the initial data was written in random order - then there is no way to distict between the entries with information you have.