Я использую WPF / C # в VS2017.Мой код берет путь к файлу изображения в виде строки и пытается загрузить его в BitmapFrame, который в основном работал нормально, за исключением того, что кто-то проверил его с некоторыми файлами изображений с Mac, и он выдал исключение.Оказывается, имя файла содержит символ # F025, который в Windows просто отображается в виде жирной точки.
Файлы представляют собой фотографии, названные по названию фотографии.В этом вопросе был знак вопроса, но в итоге он # F025.
В любом случае код преобразует строку в Uri, а затем использует BitmapFrame следующим образом:
public new void Init()
{
Source = new Uri(Path);
fi = new FileInfo(Path);
BitmapImage bs;
try
{
Image = BitmapFrame.Create(Source);
Metadata = new ExifMetadata(Image);
}
catch (Exception e)
{
Error = e.Message;
IsBroken = true;
}
Когда япосмотрите на Uri «Источник» в отладчике, затем символ # F025 был заменен на «% 25EF% 2580% 25A5».Функция Create выдает исключение «Файл не найден».
Если есть какой-либо способ преобразования этого значения в Uri, который будет принимать функция Create, или, возможно, просто использовать строку Path для его загрузки вместо этого?Я попытался использовать поток с именем файла, но это тоже не сработало.
TIA.