Как программно скачать файл на C#?

суббота, 9 января 2010, Александр Краковецкий

Для этой задачи подходит WebClient:

WebClient webClient = new WebClient();
webClient.DownloadFile("путь к файлу", @"путь к локальному файлу");

Если файлы большие, то есть смысл скачивать их асинхронно:

using System;
using System.Text;
using System.Net;
using System.ComponentModel;

namespace WebClientDemo
{
        class Program
        {
                static void Main(string[] args)
                {
                        try
                        {
                                WebClient webClient = new WebClient();
                                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(webClient_DownloadFileCompleted);
                                webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
                                webClient.DownloadFileAsync(new Uri("путь к файлу"), @"путь к локальному файлу");
                                Console.ReadKey();
                        }
                        catch(Exception ex)
                        {
                                Console.WriteLine("Could not download file: " + ex.Message);
                        }
                }

                static void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
                {
                        Console.WriteLine(String.Format("{0} of {1} bytes downloaded ({2}% done)", e.BytesReceived, e.TotalBytesToReceive, e.ProgressPercentage));
                }

                static void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
                {
                        if(e.Error == null)
                                Console.WriteLine("All done downloading the file!");
                        else
                                Console.WriteLine("Could not download file: " + e.Error.Message);
                }
        }
}


Ищите нас в интернетах!

Комментарии

Свежие вакансии