2011-09-28 73 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相同的文件名,所以路徑名也包含雙引號。 當我刪除報價,它的工作。感謝您的嘗試。 –