public void Read(Stream stream) { StreamRW rw = new StreamRW(stream); headerSignature = rw.ReadBytes(8); CheckSignature(); clsid = rw.ReadBytes(16); minorVersion = rw.ReadUInt16(); majorVersion = rw.ReadUInt16(); CheckVersion(); byteOrder = rw.ReadUInt16(); sectorShift = rw.ReadUInt16(); miniSectorShift = rw.ReadUInt16(); unUsed = rw.ReadBytes(6); directorySectorsNumber = rw.ReadInt32(); fatSectorsNumber = rw.ReadInt32(); firstDirectorySectorID = rw.ReadInt32(); unUsed2 = rw.ReadUInt32(); minSizeStandardStream = rw.ReadUInt32(); firstMiniFATSectorID = rw.ReadInt32(); miniFATSectorsNumber = rw.ReadUInt32(); firstDIFATSectorID = rw.ReadInt32(); difatSectorsNumber = rw.ReadUInt32(); for (int i = 0; i < 109; i++) { this.DIFAT[i] = rw.ReadInt32(); } rw.Close(); }
public void Write(Stream stream) { StreamRW rw = new StreamRW(stream); rw.Write(headerSignature); rw.Write(clsid); rw.Write(minorVersion); rw.Write(majorVersion); rw.Write(byteOrder); rw.Write(sectorShift); rw.Write(miniSectorShift); rw.Write(unUsed); rw.Write(directorySectorsNumber); rw.Write(fatSectorsNumber); rw.Write(firstDirectorySectorID); rw.Write(unUsed2); rw.Write(minSizeStandardStream); rw.Write(firstMiniFATSectorID); rw.Write(miniFATSectorsNumber); rw.Write(firstDIFATSectorID); rw.Write(difatSectorsNumber); foreach (int i in difat) { rw.Write(i); } if (majorVersion == 4) { byte[] zeroHead = new byte[3584]; rw.Write(zeroHead); } rw.Close(); }
public void Write(Stream stream) { StreamRW rw = new StreamRW(stream); rw.Write(entryName); rw.Write(nameLength); rw.Write((byte)stgType); rw.Write((byte)stgColor); rw.Write(leftSibling); rw.Write(rightSibling); rw.Write(child); rw.Write(storageCLSID.ToByteArray()); rw.Write(stateBits); rw.Write(creationDate); rw.Write(modifyDate); rw.Write(startSetc); rw.Write(size); rw.Close(); }