KeysList

keyslist.txt

//  Format of KeysList record in release 3.02.06.  It is never compressed.
//  There is one KeysList record for the main (TFile) directory and one per non-empty subdirectory.
//  It is probably not accessed by its key, but from its offset given in the directory data.
// ----------TKey---------------
//  byte 0->3  Nbytes    = Number of bytes in 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 the key structure (TKey)        TKey::fKeyLen
//      16->17 Cycle     = Cycle of key                                       TKey::fCycle
//      18->21 SeekKey   = Byte offset of record itself (consistency check)   TKey::fSeekKey
//      22->25 SeekPdir  = Byte offset of parent directory record (directory) TKey::fSeekPdir
//      26->26 lname     = Number of bytes in the class name (5 or 10)        TKey::fClassName
//      27->.. ClassName = Object Class Name ("TFile" or "TDirectory")        TKey::fClassName
//       0->0  lname     = Number of bytes in the object name                 TNamed::fName
//       1->.. Name      = lName bytes with the name of the object <directory 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 <directory title> TNamed::fTitle
// ----------DATA---------------
//       0->3  NKeys     = Number of keys in list (i.e. records in directory (non-recursive))
//                       | Excluded:: The directory itself, KeysList, StreamerInfo, and FreeSegments
//       4->.. TKey      = Sequentially for each record in directory,
//                       |  the entire TKey portion of each record is replicated.
//                       |  Note that SeekKey locates the record.