WebClient DownloadFileAsync Недопустимые символы в пути

Я использую WebClient.DownloadFileAsync для асинхронной загрузки файлов на мой компьютер. Иногда я получаю URL-адреса с двойными кавычками.

Например, посмотрите это:
http://upload.wikimedia.org/wikipedia/en/d/d3/%22Baby%22_Palace_Hotel_1906.jpg.

DownloadFileAsync генерирует исключение "Недопустимые символы в пути", когда имя файла содержит двойные кавычки. Я не могу декодировать URL либо, так как DownloadFileAsync не принимает строку в качестве параметра, но только Uri.

Что было бы хорошим способом справиться с этой ситуацией?

1 ответ

Странно, у меня отлично работает подписка:

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();
        }
    }
}
Другие вопросы по тегам