ExcelToolKit.BinaryFormat.XlsRootDirectory.XlsRootDirectory C# (CSharp) Method

XlsRootDirectory() public method

Creates Root Directory catalog from XlsHeader
public XlsRootDirectory ( XlsHeader hdr ) : System
hdr XlsHeader XlsHeader object
return System
        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);
        }