Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无效的URI转义(.Net 4.5)_C#_.net_Url_Encoding_Uri - Fatal编程技术网

C# 无效的URI转义(.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代码(.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解决

        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;
        }