// 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           Writeable = True if directory is writeable				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
