У меня есть простая функция, которая берет серийный номер жесткого диска с диска C: \ и помещает его в строку:
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"C:\"");
disk.Get();
string hdStr = Convert.ToString(disk["VolumeSerialNumber"]);
Затем я пытаюсь преобразовать приведенную выше строку в ASCII, а затем записать ее в двоичный файл, проблема, с которой я сталкиваюсь, заключается в том, что при преобразовании этой строки и сохранении файла с помощью streamwriter и открытии файла в В шестнадцатеричном редакторе я вижу больше байтов, которые я изначально хотел написать, например, "16342D1F4A61BC"
Получится как: 08 16 34 2d 1f 4a 61 c2 bc
Это как-то добавляет 08 и с2 ...
Более полная версия выглядит следующим образом:
string constructor2 = "16342D1F4A61BC";
string StrValue = "";
while (constructor2.Length > 0)
{
StrValue += System.Convert.ToChar(System.Convert.ToUInt32(constructor2.Substring(0, 2), 16)).ToString();
// Remove from the hex object the converted value
constructor2 = constructor2.Substring(2, constructor2.Length - 2);
}
FileStream writeStream;
try
{
writeStream = new FileStream(Path.GetDirectoryName(Application.ExecutablePath) + "\\license.mgr", FileMode.Create);
BinaryWriter writeBinay = new BinaryWriter(writeStream);
writeBinay.Write(StrValue);
writeBinay.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
Может кто-нибудь помочь мне понять, как они добавляются?