WebClient DownloadFileAsync Недопустимые символы в пути - PullRequest
0 голосов
/ 28 сентября 2011

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

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

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

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

1 Ответ

0 голосов
/ 28 сентября 2011

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

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