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));
}
→ Ссылка