A SharePoint 2007 (MOSS/WSS) WebPart to show up all subsites under a site

Here is the code for the WebPart:

using System;

using System.Runtime.InteropServices;

using System.Web.UI;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Serialization;

using Microsoft.SharePoint;

using Microsoft.SharePoint.WebControls;

using Microsoft.SharePoint.WebPartPages;

namespace ListSubSites

{

    [Guid("e96ea212-f44b-4d16-886d-e8fe7d389a7a")]

    public class ListSubSites : System.Web.UI.WebControls.WebParts.WebPart

    {

        string output = "<table border=\"0\">";

     

        protected override void CreateChildControls()

        {

            base.CreateChildControls();

            SPSite site = new SPSite("http://<Your site URL>/");

            SPWeb web = site.OpenWeb();

            SPWebCollection subSites = web.Webs;

            foreach (SPWeb subSite in subSites)

            {

                output += "<tr><td><a href=\"" + subSite.Url + "\"/>" + subSite.Title + "</a></td></tr>";

            }

            output += "</table>";

        }

       

        protected override void Render(HtmlTextWriter writer)

        {

            // TODO: add custom rendering code here.

            EnsureChildControls();

            writer.Write(output);

        }

       

    }

}