static void Main(string[] args) { string baseUri = "http://war.ssau.ru/"; links[] arrLinks = new links[1]; arrLinks[0] = new links(baseUri, baseUri, false); Types[] types = new Types[1]; types[0] = new Types("text/css", 0); machiene(baseUri, ref arrLinks, ref types); //основной цикл отвечающий за рекурсивный перебор foreach (links linkFrArr in arrLinks) { GETstringHead(linkFrArr.link, linkFrArr.bUri, ref types); } Console.WriteLine("====================================="); foreach (Types linkFrArr in types) { Console.WriteLine(linkFrArr.type + " - " + linkFrArr.size); } //foreach (links linkFrArr in arrLinks) Console.WriteLine(linkFrArr.link); Console.WriteLine("====================================="); Console.WriteLine("Total links: " + arrLinks.Length); Console.ReadLine(); }
private static void machiene(string baseUri, ref links[] arrLinks, ref Types[] types) { for (int i = 0; i < arrLinks.Length; i++) { links linkFrArr = arrLinks[i]; if (!linkFrArr.visited) { linkFrArr.visited = true; string pattern = @"(.php|.html|.htm|/(|[a-zA-Z0-9\-_]*))(\?[a-zA-Z0-9\-_\=\&]*|\#[a-zA-Z0-9\-_]*|)$"; Regex newReg = new Regex(pattern); MatchCollection matches = newReg.Matches(linkFrArr.link); if (matches.Count > 0) { DumpHRefs(GETstring(linkFrArr.link), baseUri, linkFrArr.link, ref arrLinks); } else { //добавляем размер в Types //GETstringHead(linkFrArr.link, ref types); } } } }