private void GeneateSitemap() { try { string sitemap = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n"; string webBase = this.Project.WebBase; if (!webBase.EndsWith("/")) { webBase += "/"; } if (!webBase.StartsWith("http://")) { webBase += "http://"; } string[] htmlFiles = Directory.GetFiles(Project.WebDirectory); foreach (string file in htmlFiles) { string lowerFile = file.ToLower(); if (lowerFile.EndsWith(".htm") || lowerFile.EndsWith(".html")) { // Add to the sitemap sitemap += "<url>\n<loc>" + webBase + Path.GetFileName(file) + "</loc>\n<lastmod>"; DateTime lastmod = File.GetLastWriteTime(file); sitemap += lastmod.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'sszzz") + "</lastmod>\n"; sitemap += "<changefreq>" + this.Project.ChangeFrequency + "</changefreq>\n"; sitemap += "</url>\n"; } } sitemap += "</urlset>"; // Store string sitemapFile = Path.Combine(Project.WebDirectory, "sitemap.xml"); StreamWriter writer = new StreamWriter(sitemapFile, false, Encoding.UTF8); writer.Write(sitemap); writer.Close(); string sitemapZiped = Path.Combine(Project.WebDirectory, "sitemap.xml.gz"); Zip.CompressFile(sitemapFile, sitemapZiped); File.Delete(sitemapFile); } catch (Exception ex) { UI.Log("Error generating the sitemap: " + ex.Message, ChmLogLevel.ERROR); UI.Log(ex); } }