2011-09-28 127 views
0

我正在使用WebClient.DownloadFileAsync异步地将文件下载到我的机器。有时候,我最终会看到带有双引号的网址。WebClient DownloadFileAsync路径中的非法字符

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

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

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

回答

0

怪异的follownig为我工作得很好:

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

我想通了。这是我的错误。我已经给出了与url相同的文件名,所以路径名也包含双引号。 当我删除报价,它的工作。感谢您的尝试。 –