自动生成html文件

该文章转载自网络大本营:http://www.xrss.cn/Dev/DotNet/200782716099.Html
 
C# code
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;

/// <summary>
/// WriteFile 的摘要说明
/// </summary>
public class WriteFile
{
public WriteFile()
{

}
   
public static bool createHtml(string[] strnewsHtml,string[] stroldHtml,string strModeFilePath,string strPath)
    {
       
bool flag = false;
        StreamReader sr
= null;
        StreamWriter sw
= null;
       
string filepath = HttpContext.Current.Server.MapPath(strModeFilePath);
        Encoding code
= Encoding.GetEncoding("gb2312");
       
string s = string.Empty;
       
try
        {
            sr
= new StreamReader(filepath,code);
            s
= sr.ReadToEnd();
        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {
            sr.Close();
        }
       
try
        {
           
for (int i = 0; i < strnewsHtml.Length; i++)
            {
                s
= s.Replace(stroldHtml[i], strnewsHtml[i]);
            }
            sw
= new StreamWriter(HttpContext.Current.Server.MapPath(strPath), false, code);
            sw.Write(s);
            flag
= true;
        }
       
catch (Exception ex)
        {
            flag
= false;
           
throw ex;
        }
       
finally { sw.Flush(); sw.Close(); } return flag;
    }
   
public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml)
    {
       
bool Flage = false;
        StreamReader ReaderFile
= null;
        StreamWriter WrirteFile
= null;
       
string FilePath = HttpContext.Current.Server.MapPath(strHtml);
        Encoding Code
= Encoding.GetEncoding("gb2312");
       
string strFile = string.Empty;
       
try
        {
            ReaderFile
= new StreamReader(FilePath, Code);
            strFile
= ReaderFile.ReadToEnd();

        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {
            ReaderFile.Close();
        }
       
try
        {
           
int intLengTh = strNewsHtml.Length;
           
for (int i = 0; i < intLengTh; i++)
            {
               
int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length;
               
int intEnd = strFile.IndexOf(strEndHtml[i]);
               
string strOldHtml = strFile.Substring(intStart, intEnd - intStart);
                strFile
= strFile.Replace(strOldHtml, strNewsHtml[i]);
            }
            WrirteFile
= new StreamWriter(FilePath, false, Code);
            WrirteFile.Write(strFile);
            Flage
= true;
        }
       
catch (Exception ex)
        {
           
throw ex;
        }
       
finally
        {

            WrirteFile.Flush();
            WrirteFile.Close();
        }
       
return Flage;
    }

}

调用公共类:
----------------------------------------------------------------------------
protected void Button2_Click(object sender, EventArgs e)
    {
       
string NewsTitle = this.TextBox1.Text;
       
string NewsKindName = this.DropDownList1.SelectedItem.Text;
       
string NewsBody = this.WebEditor1.Text;
        DateTime PubTime
= DateTime.Now;
       
string UserName = Session["UserName"].ToString();
        Response.Write(NewsKindName);
       
string[] strNewsHtml = new string[] { NewsTitle, NewsKindName, NewsBody, PubTime.ToString(), UserName };
       
string[] strOldHtml = new string[] { "@Title", "@NewsKInd", "@NewsBody", "@PubTime", "@UserName" };
       
string strFileName = DateTime.Now.ToString("ddhhmmss") + ".html";
       
string strFilePath = string.Format("NewsHtml/{0}", strFileName);
       
try
        {
           
if (WriteFile.createHtml(strNewsHtml, strOldHtml, "mode.htm", strFilePath))
            {
               
this.Label1.Text = "生成成功!";
            }
           
else
            {
               
this.Label1.Text = "生成失败!";
            }

        }
       
catch
        {
           
this.Label1.Text = "生成失败!";
        }
    }

 
protected void Button3_Click(object sender, EventArgs e)
    {
       
string[] strNewsHtml=new string[]{"鑫少爷到此一游!"};
       
string[] strStartHtml=new string[]{"<!-- start -->"};
       
string[] strEndHtml=new string[]{"<!--end-->"};
       
if (WriteFile.UpdateHtmlPage(strNewsHtml, strStartHtml, strEndHtml, "NewsHtml/02011139.html"))
        {
           
this.Label1.Text="生成首页成功!";
        }
       
else
        {
           
this.Label1.Text="生成首页失败!";
        }
    }

新建文件夹NewsHtml,生成html文件放在里面
-----------------------------------------------------------

增加一个模板文件

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
   
<title>无标题页</title>
</head>
<body>
   
<table border="1" cellpadding="0" cellspacing="0" style="width: 522px; height: 338px">
       
<tr>
           
<td align="center" colspan="2">
                @Title
</td>
       
</tr>
       
<tr>
           
<td align="center" colspan="2">
                发布人:@UserName
&nbsp; &nbsp; 发布时间:@PubTime &nbsp; &nbsp;&nbsp; 新闻类别:@NewsKInd</td>
       
</tr>
       
<tr>
           
<td colspan="2">
                @NewsBody
</td></tr><tr>
 
<td style="WIDTH: 100px">
</td><td style="WIDTH: 100px" >
</td></tr></table></body></html>
posted on 2007-10-09 13:17  自由.Net  阅读(626)  评论(0编辑  收藏  举报