WebClient DownloadFileAsync路径中存在非法字符



我正在使用WebClient。DownloadFileAsync将文件异步下载到我的机器。有时候,我最终会得到带有双引号的url。

例如:
http://upload.wikimedia.org/wikipedia/en/d/d3/"宝贝"_Palace_Hotel_1906.jpg。

DownloadFileAsync在文件名包含双引号时抛出"非法字符路径"异常。我无法解码url,因为DownloadFileAsync不接受字符串作为参数,而只接受Uri。

处理这种情况的好方法是什么?

奇怪的是,下面的工作对我来说很好:

class Program
{
    static void Main()
    {
        using (var client = new WebClient())
        {
            client.DownloadFileCompleted += (sender, e) =>
            {
                Console.WriteLine("finished");
            };
            client.DownloadFileAsync(new Uri("http://upload.wikimedia.org/wikipedia/en/d/d3/"Baby"_Palace_Hotel_1906.jpg"), "test.jpg");
            Console.ReadLine();
        }
    }
}

相关内容

  • 没有找到相关文章

最新更新