有时候,我们用C#写一些客户端应用程序需要从服务器下载一些资源,如图片、dll、配置文件等。下面就来说一下,在Winform及WPF中如何下载文件。
我们的资源大多放在自己的网站上,或者从其他网站下载资源,我们需要给客户端一个URL,先给出代码:
/// <summary> /// 下载文件 /// </summary> /// <param name="URL">下载文件地址</param> /// <param name="Filename">下载后的存放地址</param> public void DownloadFile(string URL, string filename) { try { System.Net.HttpWebRequest Myrq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(URL); System.Net.HttpWebResponse myrp = (System.Net.HttpWebResponse)Myrq.GetResponse(); long totalBytes = myrp.ContentLength; System.IO.Stream st = myrp.GetResponseStream(); System.IO.Stream so = new System.IO.FileStream(filename, System.IO.FileMode.Create); long totalDownloadedByte = 0; byte[] by = new byte[1024]; int osize = st.Read(by, 0, (int)by.Length); while (osize > 0) { totalDownloadedByte = osize + totalDownloadedByte; so.Write(by, 0, osize); osize = st.Read(by, 0, (int)by.Length); } so.Close(); st.Close(); } catch (System.Exception) { throw; } }
这个方法一共两个参数,第一个网络URL,第二个是本地存储的位置,如D:Download下,可以根据自己的需要填写。下面是调用方法:
Downloader down = new Downloader(); down.DownloadFile("http://www.***.com/20140124.jpg", @"d:1.jpg");
有了这个方法,我们可以抓去网页内容,通过正则匹配,去下载整个网页的图片,可以自己研究一下。