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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут