自動生成靜態網頁(IO類)

公共類:
-----------------------------------------------------------------------------
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>
 

發佈了52 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章