public XlsRootDirectory(XlsHeader hdr) {
var stream=new XlsStream(hdr, hdr.RootDirectoryEntryStart, false, null);
var array=stream.ReadStream();
var entries=new List<XlsDirectoryEntry>();
for (int i=0; i<array.Length; i+=XlsDirectoryEntry.Length) {
var tmp = new byte[XlsDirectoryEntry.Length];
Buffer.BlockCopy(array, i, tmp, 0, tmp.Length);
entries.Add(new XlsDirectoryEntry(tmp, hdr));
}
m_entries=entries;
foreach (var entry in entries){
if (m_root==null&&entry.EntryType==STGTY.STGTY_ROOT){
m_root = entry;
}
if (entry.ChildSid!=(uint)FATMARKERS.FAT_FreeSpace){
entry.Child = entries[(int) entry.ChildSid];
}
if (entry.LeftSiblingSid!=(uint)FATMARKERS.FAT_FreeSpace){
entry.LeftSibling = entries[(int) entry.LeftSiblingSid];
}
if (entry.RightSiblingSid!=(uint)FATMARKERS.FAT_FreeSpace){
entry.RightSibling = entries[(int) entry.RightSiblingSid];
}
}
stream.CalculateMiniFat(this);
}