I read a file as binary, convert to hex string, convert back to binary, and write to a new file. I expect a duplicate, but get a corrupted file.
I have been trying different ways to convert the binary into the hex string but can't seem to retain the entire file.
            byte[] binary1 = File.ReadAllBytes(@"....Input.jpg");
            string hexString = "";                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               
            int counter1 = 0;
            foreach (byte b in binary1)
            {
                counter1++;
                hexString += (Convert.ToString(b, 16));
            }
            List<byte> bytelist = new List<byte>();
            int counter2 = 0;
            for (int i = 0; i < hexString.Length/2; i++)
            {
                counter2++;
                    string ch = hexString.Substring(i*2,2);
                bytelist.Add(Convert.ToByte(ch, 16));
            }
            byte[] binary2 = bytelist.ToArray();
            File.WriteAllBytes(@"....Output.jpg", binary2);
Counter 1 and counter 2 should be the same count, but counter 2 is always about 10% smaller.
I want to get a duplicate file output that I could have transferred around via that string value.
 
    