# 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 TNamed::fName // 0->0 lTitle = Number of bytes in the object title TNamed::fTitle // 1->.. Title = lTitle bytes with the title of the object 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. ```