C# 无效的URI转义(.Net 4.5)
我必须遵循C代码(.Net 4.5) 在打开本地文件时C# 无效的URI转义(.Net 4.5),c#,.net,url,encoding,uri,C#,.net,Url,Encoding,Uri,我必须遵循C代码(.Net 4.5) 在打开本地文件时 C:\Users\KVV\Desktop\1111\Windows%20XP6.jpg Сatch异常 System.IO.FileNotFoundException 使用FileName=C:\Users\KVV\Desktop\1111\windowsxp6.jpg %20已替换为空格 如何为这些文件创建工作URL(仅需要本地文件)。 或者可以创建BitmapImage而不创建本地文件的url 问题可以通过FileStream解决
C:\Users\KVV\Desktop\1111\Windows%20XP6.jpg
Сatch异常
System.IO.FileNotFoundException
使用FileName=C:\Users\KVV\Desktop\1111\windowsxp6.jpg
%20
已替换为空格
如何为这些文件创建工作URL(仅需要本地文件)。
或者可以创建BitmapImage而不创建本地文件的url 问题可以通过FileStream解决
using (var stream = System.IO.File.OpenRead(s))
{
var img1 = new BitmapImage();
img1.BeginInit();
img1.CacheOption = BitmapCacheOption.OnLoad;
img1.StreamSource = stream;
img1.EndInit();
im1.Source = img1;
}
但这种行为与bug类似。您使用的是wpf还是winformsWPF技术。如果用户界面无法访问属性,则需要此代码才能在后台线程中加载图像。实验证明,只有当路径包含西里尔字符和%20时,才会发生错误。是否可以更改此行为?使用
HttpUtility.UrlDecode()
您可以在System.Web
namespaceHttpUtility.UrlDecode中找到它,只需在空间上替换20%。例如,如果不难,请解释如何调用此函数。
using (var stream = System.IO.File.OpenRead(s))
{
var img1 = new BitmapImage();
img1.BeginInit();
img1.CacheOption = BitmapCacheOption.OnLoad;
img1.StreamSource = stream;
img1.EndInit();
im1.Source = img1;
}