WebClient DownloadFileAsync路径中的非法字符

时间:2011-09-28 07:11:23

标签: c# webclient downloadfileasync

我使用WebClient.DownloadFileAsync将文件异步下载到我的机器上。偶尔,我最终会得到一个双引号的URL。

例如,请参阅:
http://upload.wikimedia.org/wikipedia/en/d/d3/"Baby"_Palace_Hotel_1906.jpg

当文件名包含双引号时,DownloadFileAsync会抛出“路径中的非法字符”异常。我无法解码网址,因为DownloadFileAsync不接受字符串作为参数,只接受Uri。

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

1 个答案:

答案 0 :(得分:0)

很奇怪,以下对我来说很好:

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