<% ' sitemap_gen.asp ' A simple script to automatically produce sitemaps for a webserver, in the Google Sitemap Protocol (GSP) ' by Francesco Passantino ' www.iteam5.net/francesco/sitemap_gen ' v0.1 released 4 june 2005 ' v0.2 released 5 june 2005 (Listing a directory tree recursively improvement) ' v0.3b released 9 june 2005 (File exclusion by Calvin Dunkley) ' ' BSD 2.0 license, ' http://www.opensource.org/licenses/bsd-license.php 'modify this to change website and virtual directory session("server")="http://www.bell-cornwell.co.uk" vDir = "/" set objfso = CreateObject("Scripting.FileSystemObject") root = Server.MapPath(vDir) response.ContentType = "text/xml" response.write "" response.write "" Set objFolder = objFSO.GetFolder(root) 'response.write getfilelink(objFolder.Path,objFolder.dateLastModified) Set colFiles = objFolder.Files For Each objFile In colFiles response.write getfilelink(objFile.Path,objfile.dateLastModified) Next ShowSubFolders(objFolder) response.write "" set fso = nothing Sub ShowSubFolders(objFolder) Set colFolders = objFolder.SubFolders For Each objSubFolder In colFolders if folderpermission(objSubFolder.Path) then response.write getfilelink(objSubFolder.Path,objSubFolder.dateLastModified) Set colFiles = objSubFolder.Files For Each objFile In colFiles response.write getfilelink(objFile.Path,objFile.dateLastModified) Next ShowSubFolders(objSubFolder) end if Next End Sub Function getfilelink(file,datafile) file=replace(file,root,"") file=replace(file,"\","/") If FileNameIsBad(file) then Exit Function If FileExtensionIsBad(file) then Exit Function if month(datafile)<10 then filedatem="0" if day(datafile)<10 then filedated="0" filedate=year(datafile)&"-"&filedatem&month(datafile)&"-"&filedated&day(datafile) getfilelink = ""&server.htmlencode(session("server")&file)&""&filedate&"" Response.Flush End Function Function Folderpermission(pathName) 'modify this to exclude path PathExclusion=Array("\_vti_cnf","\_vti_pvt","\_vti_log","\cgi-bin","\images","\aspnet_client","\webalizer") Folderpermission =True for each PathExcluded in PathExclusion if instr(ucase(pathName),ucase(PathExcluded))>0 then Folderpermission = False exit for end if next End Function Function FileExtensionIsBad(sFileName) Dim sFileExtension, bFileExtensionIsValid, sFileExt 'modify for your file extension (http://www.googleguide.com/file_type.html) Extensions = Array("html","htm","asp") if len(trim(sFileName)) = 0 then FileExtensionIsBad = true Exit Function end if sFileExtension = right(sFileName, len(sFileName) - instrrev(sFileName, ".")) bFileExtensionIsValid = false 'assume extension is bad for each sFileExt in extensions if ucase(sFileExt) = ucase(sFileExtension) then bFileExtensionIsValid = True exit for end if next FileExtensionIsBad = not bFileExtensionIsValid End Function Function FileNameIsBad(sFileName) if len(trim(sFileName)) = 0 then FileNameIsBad = true Exit Function end if 'modify this to exclude files Filename = Array("/alive.asp","/404.asp","/500.asp","/sitemap_gen.asp","/sitemap.asp","/postinfo.html","/_vti_inf.html") FileNameNumber = ubound(Filename) for i=0 to FileNameNumber if Filename(i) = sFileName then FileNameIsBad = True end if next End Function %>