public XlsStream(XlsHeader hdr, uint startSector) { m_fileStream = hdr.FileStream; m_fat = hdr.FAT; m_hdr = hdr; m_startSector = startSector; }
public XlsStream(XlsHeader hdr, uint startSector, bool isMini, XlsRootDirectory rootDir) { m_fileStream = hdr.FileStream; m_fat = hdr.FAT; m_hdr = hdr; m_startSector = startSector; m_isMini = isMini; m_rootDir = rootDir; CalculateMiniFat(rootDir); }
/// <summary> /// Returns mini FAT table /// </summary> public XlsFat GetMiniFAT(XlsRootDirectory rootDir) { if (m_minifat != null) return m_minifat; // uint value; // int miniSectorSize = MiniSectorSize; List<uint> sectors = new List<uint>(MiniFatSectorCount); //find the sector where the minifat starts uint miniFatStartSector = BitConverter.ToUInt32(m_bytes, 0x3c); sectors.Add(miniFatStartSector); //lock (m_file) //{ // //work out the file location of minifat then read each sector // var miniFatStartOffset = (miniFatStartSector + 1)*SectorSize; // var miniFatSize = MiniFatSectorCount * SectorSize; // m_file.Seek(miniFatStartOffset, SeekOrigin.Begin); // byte[] sectorBuff = new byte[SectorSize]; // for (var i = 0; i < MiniFatSectorCount; i += SectorSize) // { // m_file.Read(sectorBuff, 0, 4); // var secId = BitConverter.ToUInt32(sectorBuff, 0); // sectors.Add(secId); // } //} m_minifat = new XlsFat(this, sectors, this.MiniSectorSize, true, rootDir); return m_minifat; }
public void CalculateMiniFat(XlsRootDirectory rootDir) { m_minifat = m_hdr.GetMiniFAT(rootDir); }
public void CalculateMiniFat(XlsRootDirectory rootDir) { this.m_minifat = this.m_hdr.GetMiniFAT(rootDir); }