HTTPで画像やファイルをダウンロードしてファイルに保存する (WebClientクラスを利用) - C#

WebClientクラスを利用して、Webの画像ファイルをダウンロードしてファイルに保存するコードを紹介します。

UI

下図のUIを準備します。利用するのはボタンコントロール1つと、テキストボックスコントロール1つのみです。

コード

下記のコードを記述します。Button1のClickイベントを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace GetImageFromTwitter
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      WebClient wc = new WebClient();
      try
      {
        wc.DownloadFile("http://(画像ファイルのURL)", "img.jpg");
        textBox1.Text += "ファイルを保存しました。\r\n";
      }
      catch (WebException exc)
      {
        textBox1.Text += exc.Message + "\r\n";
      }
    }
  }
}

解説

WebClient wc = new WebClient();
にて、WebClientクラスのインスタンスを作成します。

wc.DownloadFile("http://(画像ファイルのURL)", "img.jpg");
DownloadFileメソッドを呼び出してファイルをダウンロードします。第一引数にはダウンロードするファイルのURLを、第二引数には保存ファイルパスを与えます。上記の例では第二引数が相対パスで記述されているため実行ファイルのあるディレクトリにファイルが保存されます。

catch (WebException exc)
{
  textBox1.Text += exc.Message + "\r\n";
}
では、ファイルのダウンロードの際のエラー処理を記述します。ファイルが見つからない場合、Webサーバーから404エラーが返された場合WebException例外が発生するためこれをキャッチしています。

実行結果

プロジェクトを実行し、button1を押すと指定したURLのファイルをダウンロードして実行ファイルのある位置に"img.jpg"として保存します。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-11-17
作成日: 2012-10-24
iPentec all rights reserverd.