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

 更新时间:2009年08月16日 13:10:39   作者:  
生成google网站地图的实现代码,需要的朋友可以参考下。
复制代码 代码如下:

/// <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) { }
}

相关文章

  • Asp.Net 网站性能优化之缓字决 (上) 缓冲写数据

    Asp.Net 网站性能优化之缓字决 (上) 缓冲写数据

    通常情况下Asp.Net 网站的底层数据存储都是关系数据库,关系数据库资源比较昂贵,而且也很容易造成瓶颈。缓字决文章就是为大家介绍如何有效使用缓存,异步写缓冲数据库的压力,从而保证网站的性能。
    2010-06-06
  • asp.net 因为数据库正在使用的解决方法

    asp.net 因为数据库正在使用的解决方法

    因为数据库正在使用,所以未能获得对数据库的排它访问权?
    2009-02-02
  • .net MVC使用Session验证用户登录(4)

    .net MVC使用Session验证用户登录(4)

    这篇文章主要为大家详细介绍了.net MVC使用Session验证用户登录的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 让你的.NET程序兼容不同版本的Dll文件

    让你的.NET程序兼容不同版本的Dll文件

    让你的.NET程序兼容不同版本的Dll文件...
    2006-09-09
  • 详解ASP.NET Razor 语法

    详解ASP.NET Razor 语法

    这篇文章主要介绍了ASP.NET Razor 语法的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • asp.net Cookie值中文乱码问题解决方法

    asp.net Cookie值中文乱码问题解决方法

    cookie里面不能写中文,是由于cookie先天的编码方式造成的,所以有必要存在一种中间的编码方式:URLEncode是最好的选择,感兴趣的你可千万不要错过了哈,或许本文提供的知识点对你学习cookie有所帮助
    2013-02-02
  • ASP.NET Core MVC 配置全局路由前缀

    ASP.NET Core MVC 配置全局路由前缀

    这篇文章主要介绍了ASP.NET Core MVC 配置全局路由前缀的相关资料,需要的朋友可以参考下
    2016-09-09
  • 老生常谈.NET中的 COM 组件

    老生常谈.NET中的 COM 组件

    COM组件中的接口是一组由组件实现的,提供给客户使用的函数,这篇文章主要介绍了.NET中的 COM 组件,需要的朋友可以参考下
    2022-10-10
  • asp.net数据验证控件

    asp.net数据验证控件

    ASP.NET不仅把窗体的验证作为服务器控件引入,还使这些控件智能化。如果浏览器支持JavaScript,而ASP.NET可以发送JavaScript,验证就在客户端进行;如果客户机不支持用于验证的JavaScript,这些JavaScript就被忽略,验证就在服务器上进行。
    2015-11-11
  • Asp.Net性能优化技巧汇总

    Asp.Net性能优化技巧汇总

    这篇文章主要介绍了Asp.Net性能优化技巧汇总,非常实用的归纳总结,需要的朋友可以参考下
    2014-07-07

最新评论