System.Net.WebClientクラスを使用してファイルをダウンロードします
//参照を追加
using System.Net;
・単純なダウンロード
public static void getFile(string uri, string filename)
{
    WebClient wc = new WebClient();
    wc.DownloadFile(uri, filename);
    wc.Dispose();
}
・バイト配列でダウンロード
public static byte[] getFile(string uri)
{
    byte[] data;
    //WebClientの作成
    WebClient wc = new WebClient();
    //ファイルをダウンロードする
    try
    {
        data = wc.DownloadData(uri);
        //後始末
        wc.Dispose();
        if (data.Length < 2500)
        {
            return null;
        }
    }
    catch
    {
        data = null;
    }
    return data;
}
・バイト配列から書き込み保存
public static void SaveFile(byte[] data, string filename)
{
    FileStream fsTo = new FileStream(filename, FileMode.Create, FileAccess.Write);
    fsTo.Write(data, 0, data.Length);
    fsTo.Close();
}