Закодировать byte[] в string и обратно - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите пожалуйста где ошибка и как правильно сделать. Надо передать byte[]. В этом массиве имя файла, разделитель и сам файл. Делаю вот так:
//добавляю к имени файла разделитель
string fileName = sendfile.Key + "[stop]";
// преобразую имя файла в byte[]
byte[] bytes1 = Encoding.UTF8.GetBytes(fileName);
//преобразую файл в byte[]
byte[] file = File.ReadAllBytes(sendfile.Key);
//соединяю два массива
byte[] result = new byte[0];
result = bytes1.Concat(file).ToArray();
//и отправляю
//когда получаю преобразовываую в строку чтобы отделить имя файла 
 var dd = Encoding.UTF8.GetString(file);
//отделяю имя и конвертирую снова в байты чтобы сохранить в папку
var ddd = Encoding.UTF8. GetBytes(dd);
File.WriteAllBytes(fName, dd);
Файл получается нечитаемый. Вот в этой строке:
var ddd = Encoding.UTF8. GetBytes(dd);
уже другой размер у файла.

Решение задачи: «Закодировать byte[] в string и обратно»

textual
Листинг программы
            byte[] recvBuf = sendBuf;
 
            using (var ms = new MemoryStream(recvBuf))
            using (var br = new BinaryReader(ms))
            {
                string filename2 = br.ReadString();
                int fileSize = br.ReadInt32();
                byte[] filedata2 = br.ReadBytes(fileSize);
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5