/// <summary> /// /// </summary> /// <param name="target"></param> /// <param name="header"></param> /// <param name="offset"></param> protected virtual void WriteHeader(Stream target, EdataHeader header, uint offset) { target.Seek(offset, SeekOrigin.Begin); byte[] rawHeader = MiscUtilities.StructToBytes(header); target.Write(rawHeader, 0, rawHeader.Length); }
/// <summary> /// Reads the header of raw bytes. /// </summary> /// <returns>A instance of the current header.</returns> protected EdataHeader ReadEdataHeader(byte[] rawData) { var header = new EdataHeader(this); using (MemoryStream stream = new MemoryStream(rawData, 0, rawData.Length)) { var buffer = new byte[4]; stream.Seek(0x19, SeekOrigin.Begin); stream.Read(buffer, 0, 4); header.DirOffset = BitConverter.ToInt32(buffer, 0); stream.Read(buffer, 0, 4); header.DirLengh = BitConverter.ToInt32(buffer, 0); stream.Read(buffer, 0, 4); header.FileOffset = BitConverter.ToInt32(buffer, 0); stream.Read(buffer, 0, 4); header.FileLengh = BitConverter.ToInt32(buffer, 0); } return(header); }
/// <summary> /// Reads the header of the current package. /// </summary> /// <returns>A instance of the current header.</returns> protected EdataHeader ReadEdataHeader() { var header = new EdataHeader(this); using (FileStream fileStream = File.Open(FilePath, FileMode.Open)) { var buffer = new byte[4]; fileStream.Seek(0x19, SeekOrigin.Begin); fileStream.Read(buffer, 0, 4); header.DirOffset = BitConverter.ToInt32(buffer, 0); fileStream.Read(buffer, 0, 4); header.DirLengh = BitConverter.ToInt32(buffer, 0); fileStream.Read(buffer, 0, 4); header.FileOffset = BitConverter.ToInt32(buffer, 0); fileStream.Read(buffer, 0, 4); header.FileLengh = BitConverter.ToInt32(buffer, 0); } return(header); }