1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using System.Net;
6: using System.IO;
7: using System.Text.RegularExpressions;
8: using System.Collections;
9:
10: namespace PDCLoadSessionNames
11: {
12:
13: class Program
14: {
15:
16: static string getHTMLPage(string Url)
17: {
18:
19: // Open a connection
20: HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(Url);
21: WebRequestObject.ContentType = "text/html";
22:
23: WebResponse Response = WebRequestObject.GetResponse();
24:
25: Stream WebStream = Response.GetResponseStream();
26: StreamReader Reader = new StreamReader(WebStream);
27:
28: string PageContent = Reader.ReadToEnd();
29:
30:
31: Reader.Close();
32: WebStream.Close();
33: Response.Close();
34:
35: return PageContent;
36: }
37:
38: static void ProcessPage(string Url, ArrayList Titles)
39: {
40: string html = getHTMLPage(Url);
41:
42: Regex titleRegex = new Regex("<P><STRONG>(?<title>[A-Z][A-Z][0-9][0-9].+?)</STRONG>");
43:
44: string pattern = "<P><STRONG>(?<title>.+?)</STRONG>";
45: MatchCollection titleMatches = Regex.Matches(html, pattern);
46: foreach (Match titleMatch in titleMatches)
47: {
48: string title = titleMatch.Groups["title"].Value;
49: Titles.Add(title);
50: }
51: }
52:
53: static void RenameFiles(string Path, ArrayList titles)
54: {
55: DirectoryInfo sessionDir = new DirectoryInfo(Path);
56:
57: foreach (string title in titles)
58: {
59: string subTitle = title.Substring(0, 6);
60: if (subTitle.Substring(4, 1) == " ")
61: {
62: subTitle = subTitle.Substring(0, 4);
63: }
64:
65: foreach (FileInfo sessionFile in sessionDir.GetFiles())
66: {
67:
68: int dotLoc = sessionFile.Name.LastIndexOf(".");
69: string fileName = sessionFile.Name.Substring(0, dotLoc);
70:
71: string newFileName = title;
72: newFileName = newFileName.Replace(".", "");
73: newFileName = newFileName.Replace(":", " -");
74: newFileName = newFileName.Replace("/", "");
75:
76: if (subTitle == fileName)
77: {
78: File.Move(sessionFile.FullName, Path + newFileName + sessionFile.Extension);
79: Console.WriteLine(Path + newFileName + sessionFile.Extension);
80: }
81: }
82: }
83: }
84:
85: static void Main(string[] args)
86: {
87: ArrayList titles = new ArrayList();
88: ProcessPage("http://weblogs.asp.net/guerchele/archive/2008/10/29/pdc-2008-day-1-46-matching-sessions.aspx", titles);
89: ProcessPage("http://weblogs.asp.net/guerchele/archive/2008/10/29/pdc-2008-day-2-50-matching-sessions.aspx", titles);
90: ProcessPage("http://weblogs.asp.net/guerchele/archive/2008/10/29/pdc-2008-day-3-60-matching-sessions.aspx", titles);
91: ProcessPage("http://weblogs.asp.net/guerchele/archive/2008/10/29/pdc-2008-day-4-49-matching-sessions.aspx", titles);
92:
93: RenameFiles("e:\\sessions\\", titles);
94: Console.ReadKey();
95: }
96: }
97: }