您的位置:首页 > 运维架构 > 网站架构

ASP.NET生成Google网站地图的代码

2009-08-16 00:00 706 查看
/// <summary> 
/// 生成google网站地图 
/// </summary> 
/// <returns></returns> 
public static boolBuildGoogleSitemap() 
{ 
try 
{ 
string RootDirectory = AppDomain.CurrentDomain.BaseDirectory; 
XmlTextWriter Writer = new XmlTextWriter(HttpContext.Current.Server.MapPath("~/GoogleSitemaps.xml"), Encoding.GetEncoding("utf-8")); 
Writer.Formatting = Formatting.Indented; 
Writer.WriteStartDocument(); 
Writer.WriteStartElement("urlset", "http://www.google.com/schemas/sitemap/0.84"); 
//遍历扫描网站所有文件 
showfiles(RootDirectory, Writer); 
Writer.WriteEndElement(); 
Writer.WriteEndDocument(); 
Writer.Close(); 
return true; 
} 
catch (Exception err) 
{ 
return false; 
} 
} 
//遍历扫描网站所有文件 
static void showfiles(string dirpath, XmlTextWriter Writer) 
{ 
bool IsRead = true; 
string[] NotRead ={ "App_Data", "Bin", "fckeditor", "js", "MyAdmin", "PowerChatRoom" };//排除这些文件夹 
foreach (string s in NotRead) 
{ 
string dirname = dirpath.Substring(dirpath.LastIndexOf(@"\") + 1); 
if (dirname == s) 
{ 
IsRead = false; 
break; 
} 
} 
if (!IsRead) 
return; 
try 
{ 
DirectoryInfo dir = new DirectoryInfo(dirpath); 
foreach (FileInfo f in dir.GetFiles()) 
{ 
string path = dir.FullName.Replace(AppDomain.CurrentDomain.BaseDirectory, "");//文件相对目录 
//HttpContext.Current.Response.Write(AppDomain.CurrentDomain.BaseDirectory + "**********" + dir.FullName + "<br>"); 
Writer.WriteStartElement("url"); 
Writer.WriteStartElement("loc"); 
StringBuilder sb = new StringBuilder("/" + path + "/" + f.Name); 
sb.Replace("//", "/").Replace(@"\", "/"); 
Writer.WriteString(ConfigurationManager.AppSettings["WebSiteUrl"].ToString() + sb.ToString()); 
Writer.WriteEndElement(); 
Writer.WriteStartElement("lastmod"); 
Writer.WriteString(string.Format("{0:yyyy-MM-dd}", f.LastWriteTime)); 
Writer.WriteEndElement(); 
Writer.WriteStartElement("changefreq"); 
Writer.WriteString("always");//更新频率:always:经常,hourly:小时,daily:天,weekly:周,monthly:月,yearly:年 
Writer.WriteEndElement(); 
Writer.WriteStartElement("priority"); 
Writer.WriteString("0.8");//相对于其他页面的优先权,此值定于0.0 - 1.0之间 
Writer.WriteEndElement(); 
Writer.WriteEndElement(); 
} 
foreach (DirectoryInfo d in dir.GetDirectories()) 
{ 
showfiles(d.FullName, Writer); 
} 
} 
catch (Exception) { } 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: