// A ROOT file is a suite of consecutive data records (TKey's) with
// the following format (see also the TKey class). If the key is
// located past the 32 bit file limit (> 2 GB) then some fields will
// be 8 instead of 4 bytes:
// ----------TKey---------------
// byte 0->3 Nbytes = Number of bytes compressed record (TKey+data) TKey::fNbytes
// 4->5 Version = TKey class version identifier TKey::fVersion
// 6->9 ObjLen = Number of bytes of uncompressed data TKey::fObjLen
// 10->13 Datime = Date and time when record was written to file TKey::fDatime
// | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second
// 14->15 KeyLen = Number of bytes in key structure (TKey) TKey::fKeyLen
// 16->17 Cycle = Cycle of key TKey::fCycle
// 18->21 [18->25] SeekKey = Byte offset of record itself (consistency check) (64) TKey::fSeekKey
// 22->25 [26->33] SeekPdir = Byte offset of parent directory record (0) TKey::fSeekPdir
// 26->26 [34->34] lname = Number of bytes in the class name (5) TKey::fClassName
// 27->.. [35->..] ClassName = Object Class Name ("TFile") TKey::fClassName
// 0->0 lname = Number of bytes in the object name TNamed::fName
// 1->.. Name = lName bytes with the name of the object <file name> TNamed::fName
// 0->0 lTitle = Number of bytes in the object title TNamed::fTitle
// 1->.. Title = lTitle bytes with the title of the object <file title> TNamed::fTitle
// --------DATA-----------------
// 0->0 lname = Number of bytes in the TFile name TNamed::fName
// 1->.. Name = lName bytes with the name of the TFile <file name> TNamed::fName
// 0->0 lTitle = Number of bytes in the TFile title TNamed::fTitle
// 1->.. Title = lTitle bytes with the title of the TFile <file title> TNamed::fTitle
// 0->0 Modified = True if directory has been modified TDirectory::fModified
// 1->1 Writable = True if directory is writable TDirectory::fWriteable
// 2->5 DatimeC = Date and time when directory was created TDirectory::fDatimeC
// | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second
// 6->9 DatimeM = Date and time when directory was last modified TDirectory::fDatimeM
// | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second
// 10->13 NbytesKeys= Number of bytes in the associated KeysList record TDirectory::fNbyteskeys
// 14->17 NbytesName= Number of bytes in TKey+TNamed at creation TDirectory::fNbytesName
// 18->21 [18->25] SeekDir = Byte offset of directory record in file (64) TDirectory::fSeekDir
// 22->25 [26->33] SeekParent= Byte offset of parent directory record in file (0) TDirectory::fSeekParent
// 26->29 [34->41] SeekKeys = Byte offset of associated KeysList record in file TDirectory::fSeekKeys