Закодировать 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);
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д