C# WPF: byte[] to Uri
Я создаю архиватор с помощью записи файлов (в виде base64) в файл построчно. В программе также встроена возможность предпросмотра содержимого архива. Элементом просмотра выступает MediaElement. В процессе преобразования я сначала конвертирую base64 в byte[], а после - byte[] в Uri. Однако, при попытке конвертировать byte[] в Uri я получаю исключение : слишком длинная строка Uri. Вот код, который я использую.
Uri ByteArrToUri(byte[] arr)
{
return new Uri(Encoding.UTF8.GetString(arr));
}
Есть ли способы исправить это, или другие варианты конвертации byte[] в Uri?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Судя по всему, у вас в массиве байты не самой строки, а base64, в этом случае, вам надо сначала выполнить преобразование в байты строки.
Uri ByteArrToUri(byte[] arr)
{
string base64 = Encoding.UTF8.GetString(arr);
byte[] bytes = Convert.FromBase64String(base64);
return new Uri(Encoding.UTF8.GetString(bytes));
}