Example #1
0
 internal void WriteTo(Stream stream)
 {
     stream.Write(Magic, 0, Magic.Length);
     stream.WriteASCIINumber(RawInodeNumber, 8);
     stream.WriteASCIINumber((int)RawPermissions, 8);
     stream.WriteASCIINumber(Uid, 8);
     stream.WriteASCIINumber(Gid, 8);
     stream.WriteASCIINumber(RawNumberOfLinks, 8);
     stream.WriteASCIINumber(Utilities.ToUnixDate(ModificationDate), 8);
     stream.WriteASCIINumber(RawContents.Length, 8);
     stream.WriteASCIINumber(RawHoldingDeviceMajor, 8);
     stream.WriteASCIINumber(RawHoldingDeviceMinor, 8);
     stream.WriteASCIINumber(RawDeviceMajorNumber, 8);
     stream.WriteASCIINumber(RawDeviceMinorNumber, 8);
     stream.WriteASCIINumber(Path.Length + 1, 8); // include ending NUL
     stream.Write(CheckBytes, 0, CheckBytes.Length);
     var pathBytes = Encoding.UTF8.GetBytes(Path);
     stream.Write(pathBytes, 0, pathBytes.Length);
     var paddingArray = new byte[(111 + pathBytes.Length).PadToFour() - 110 - pathBytes.Length];
     stream.Write(paddingArray, 0, paddingArray.Length);
     stream.Write(RawContents, 0, RawContents.Length);
     paddingArray = new byte[RawContents.Length.PadToFour() - RawContents.Length];
     stream.Write(paddingArray, 0, paddingArray.Length);
 }