public static List <PicCategory> GetCategory(string sPath, int iMaxCategory) { List <PicCategory> listCategory = new List <PicCategory>(); string sUrl = "http://www.coloring-book.info/coloring/coloring_page.php?id="; for (int i = 1; i <= iMaxCategory; i++) { string sRealUrl = sUrl + i.ToString(); WebClient wc = new WebClient(); string sHtml = wc.DownloadString(sRealUrl); Regex reg = new Regex("<td width=\"95\"><img.*?src=\"(.*?)\".*?></td>.*?<td width=\"468\"><div align=\"center\"><h1 class=\"coloring\">(.*?) coloring pages</h1>", RegexOptions.Singleline); Match m = reg.Match(sHtml); PicCategory c = new PicCategory(); c.ID = i; c.CategoryPic = @"http://www.coloring-book.info/coloring/" + m.Groups[1].Value; c.Name = m.Groups[2].Value.Replace(":", ""); if (c.Name != "") { listCategory.Add(c); } } return(listCategory); }
private void btnCollectDirectory_Click(object sender, EventArgs e) { //Get the DictFile string[] reads = File.ReadAllLines(tbPicPath.Text + "\\Translate.txt"); Dictionary <string, string> mapName = new Dictionary <string, string>(); foreach (string r in reads) { string[] ss = r.Split('|'); mapName[ss[0]] = ss[1]; } DirectoryInfo info = new DirectoryInfo(tbPicPath.Text + "_processed"); DirectoryInfo[] dirs = info.GetDirectories(); Dictionary <int, PicCategory> mapDir = new Dictionary <int, PicCategory>(); foreach (DirectoryInfo inf in dirs) { string[] ss = inf.Name.Split('_'); PicCategory c = new PicCategory(); c.ID = Int32.Parse(ss[1]); c.SortID = Int32.Parse(ss[2]); c.EName = ss[0]; if (mapName.ContainsKey(ss[0])) { c.CName = mapName[ss[0]]; } else { c.CName = c.EName; } c.SrcPath = inf.FullName; mapDir[c.SortID] = c; } string sNewPath = tbPicPath.Text + "_Output"; Directory.CreateDirectory(sNewPath); string sJson = "["; //Change the order! int iMaxSortID = mapDir.Count; for (int iCur = 0; iCur < iMaxSortID; iCur++) { PicCategory c = mapDir[iCur]; string sCatPath = sNewPath + "\\" + c.ID; Directory.CreateDirectory(sCatPath); FileInfo[] fileNames = new DirectoryInfo(c.SrcPath).GetFiles(); int iCnt = (fileNames.Length - 1) / 2; sJson += "{c:" + c.ID + ",n:'" + c.CName.Replace("\'", "\\\'") + "',max:" + iCnt.ToString() + "},"; foreach (FileInfo fInfo in fileNames) { if (fInfo.Name == "category.gif") { Bitmap bm = Bitmap.FromFile(fInfo.FullName) as Bitmap; bm.Save(sCatPath + "\\category.png", ImageFormat.Png); } else { fInfo.CopyTo(sCatPath + "\\" + fInfo.Name); } } } sJson = sJson.Substring(0, sJson.Length - 1); sJson += "]"; File.WriteAllText(sNewPath + "\\Category.txt", sJson); }