public void SetData(byte[] data, int index, int count) { using (MemoryStream stream = new MemoryStream(data, index, count, false)) { using (ZipHelperStream stream2 = new ZipHelperStream(stream)) { int num; DateTime time; this._flags = (Flags) ((byte) stream2.ReadByte()); if ((((byte) (this._flags & Flags.ModificationTime)) != 0) && (count >= 5)) { num = stream2.ReadLEInt(); time = new DateTime(0x7b2, 1, 1, 0, 0, 0); time = time.ToUniversalTime() + new TimeSpan(0, 0, 0, num, 0); this._modificationTime = time.ToLocalTime(); } if (((byte) (this._flags & Flags.AccessTime)) != 0) { num = stream2.ReadLEInt(); time = new DateTime(0x7b2, 1, 1, 0, 0, 0); time = time.ToUniversalTime() + new TimeSpan(0, 0, 0, num, 0); this._lastAccessTime = time.ToLocalTime(); } if (((byte) (this._flags & Flags.CreateTime)) != 0) { num = stream2.ReadLEInt(); time = new DateTime(0x7b2, 1, 1, 0, 0, 0); this._createTime = (time.ToUniversalTime() + new TimeSpan(0, 0, 0, num, 0)).ToLocalTime(); } } } }
public void SetData(byte[] data, int index, int count) { using (MemoryStream stream = new MemoryStream(data, index, count, false)) { using (ZipHelperStream stream2 = new ZipHelperStream(stream)) { stream2.ReadLEInt(); while (stream2.Position < stream2.Length) { int num = stream2.ReadLEShort(); int num2 = stream2.ReadLEShort(); if (num == 1) { if (num2 >= 0x18) { long fileTime = stream2.ReadLELong(); this._lastModificationTime = DateTime.FromFileTime(fileTime); long num4 = stream2.ReadLELong(); this._lastAccessTime = DateTime.FromFileTime(num4); long num5 = stream2.ReadLELong(); this._createTime = DateTime.FromFileTime(num5); } return; } stream2.Seek((long) num2, SeekOrigin.Current); } } } }