C# 图片下载类

 1using System;
 2using System.IO;
 3using System.Net;
 4using System.Text.RegularExpressions;
 5
 6namespace DotNet.Utilities
 7{
 8/// <summary>
 9/// 图片下载
10/// </summary>
11public class ImageDown
12{
13public ImageDown()
14{ }
15
16#region 私有方法
17/// <summary>
18/// 获取图片标志
19/// </summary>
20private string[] GetImgTag(string htmlStr)
21{
22Regex regObj = new Regex("<img.+?>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
23string[] strAry = new string[regObj.Matches(htmlStr).Count];
24int i = 0;
25foreach (Match matchItem in regObj.Matches(htmlStr))
26{
27strAry[i] = GetImgUrl(matchItem.Value);
28i++;
29}
30return strAry;
31}
32
33/// <summary>
34/// 获取图片URL地址
35/// </summary>
36private string GetImgUrl(string imgTagStr)
37{
38string str = "";
39Regex regObj = new Regex("http://.+.(?:jpg|gif|bmp|png)", RegexOptions.Compiled | RegexOptions.IgnoreCase);
40foreach (Match matchItem in regObj.Matches(imgTagStr))
41{
42str = matchItem.Value;
43}
44return str;
45}
46#endregion
47
48/// <summary>
49/// 下载图片到本地
50/// </summary>
51/// <param name="strHTML">HTML</param>
52/// <param name="path">路径</param>
53/// <param name="nowyymm">年月</param>
54/// <param name="nowdd">日</param>
55public string SaveUrlPics(string strHTML, string path)
56{
57string nowym = DateTime.Now.ToString("yyyy-MM"); //当前年月
58string nowdd = DateTime.Now.ToString("dd"); //当天号数
59path = path + nowym + "/" + nowdd;
60if (!Directory.Exists(path)) Directory.CreateDirectory(path);
61
62string[] imgurlAry = GetImgTag(strHTML);
63try
64{
65for (int i = 0; i < imgurlAry.Length; i++)
66{
67string preStr = System.DateTime.Now.ToString() + "_";
68preStr = preStr.Replace("-", "");
69preStr = preStr.Replace(":", "");
70preStr = preStr.Replace(" ", "");
71WebClient wc = new WebClient();
72wc.DownloadFile(imgurlAry[i], path + "/" + preStr + imgurlAry[i].Substring(imgurlAry[i].LastIndexOf("/") + 1));
73}
74}
75catch (Exception ex)
76{
77return ex.Message;
78}
79return strHTML;
80}
81}
82}