Закодировать 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);
}