Невозможно сохранить изображение с URL-адреса в C# - с помощью Webclient и DownloadFile();

Я не могу загружать изображения из RSS-канала, если URL-адрес не содержит имени файла.

Пример —

URL-адрес изображения, которое я хотел бы загрузить (работает, если щелкнуть по нему в браузере, но в коде не работает):

http://www.deviantart.com/download/286471805/

Используя приведенный ниже код, я получаю «Исключение во время запроса WebClient». ошибка. Я понятия не имею, почему это не работает.

Любые идеи о том, как я могу сохранить эти файлы?

    private void Start_Button_Click(object sender, EventArgs e)
    {
        WebClient MyDownloader = new WebClient();

            MyDownloader.DownloadFile(@"http://www.deviantart.com/download/286471805/", @"c:\test\");

    }

person Chris L    schedule 09.05.2012    source источник


Ответы (1)


Вы должны указать имя файла в качестве второго аргумента, а не каталог загрузки:

using (var client = new WebClient())
{
    client.DownloadFile("http://www.deviantart.com/download/174633066/",
                        @"c:\test\file.png");
}                                     ↑
person dtb    schedule 09.05.2012
comment
Имя файла не указано в RSS-канале, что на самом деле является проблемой, с которой я столкнулся (например, RSS-канал: backend.deviantart.com/). RSS-канал содержит только ссылку, которая у меня есть, без имени файла. Как я могу получить имя файла? - person Chris L; 09.05.2012
comment
Возможно, вы можете использовать идентификатор, указанный в URL-адресе. Вам решать, какое имя вы хотите/нужно для этого файла. - person Ivo; 09.05.2012
comment
Кажется, имя файла, на которое вы ссылаетесь, - это место, на которое перенаправляется ваш URL. См.: Получение местоположения из WebClient при перенаправлении HTTP 302? - person dtb; 09.05.2012