程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> ASP.NET生成靜態HTML源碼示例(C#)

ASP.NET生成靜態HTML源碼示例(C#)

編輯:關於C語言
toHtml.cs 【生成靜態頁面核心類】:using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
namespace stroper
{
    public class toHtml
    {
        public toHtml()
        {
       
        }
        /// <summary>
        /// 生成靜態網頁
        /// </summary>
        /// <param name="template_url">模板相對路徑</param>
        /// <param name="Come_url">生成靜態頁面的相對路徑</param>
        /// <param name="encode">頁面編碼</param>
        /// <param name="tags">靜態模板標簽</param>
        /// <param name="chg_tags">替換標簽的內容</param>
        public string chg_Html(string template_url,string Come_url,string encode,string[] tags,string[] chg_tags)
        {
            //初始化Html字節流
            string init_stream = readsr(System.Web.HttpContext.Current.Server.MapPath(template_url), encode);
            //生成文件名
            string fileName=get_filename();
            //完成Html字節流
            string ok_streamstr = chg_tag(tags, chg_tags, init_stream);
            //生成存放Html的文件夾
            fileoper files = new fileoper();
            files.CreateFolder(Come_url);
            //生成靜態頁面
            bool okout = outHtml(System.Web.HttpContext.Current.Server.MapPath(Come_url)+"\\" + fileName, encode, ok_streamstr);
            //判斷生成成功與失敗
            if (okout == true)
            {
                return System.Web.HttpContext.Current.Server.MapPath(Come_url) + "\\" + fileName;
            }
            else
            {
                return "生成失敗";
            }
        }
        /// <summary>
        /// 讀取文件字節流
        /// </summary>
        /// <param name="template_url">模板相對路徑</param>
        /// <param name="encode">頁面編碼</param>
        /// <returns>template靜態模板的Html字符串</returns>
        private string readsr(string template_url, string encode)
        {
            Encoding code = Encoding.GetEncoding(encode);
            StreamReader sr = null;
            string str = null;
            //讀取
            try
            {
                sr = new StreamReader(template_url, code);
                str = sr.ReadToEnd();
                return str;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sr.Close();
            }
           
        }
        /// <summary>
        /// 生成靜態頁面的文件名
        /// </summary>
        /// <returns></returns>
        private string get_filename()
        {
            //Random ra = new Random(10);
            //string rnd=ra.Next(1, 999).ToString();
            long tick = DateTime.Now.Ticks;
            Random ra = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
            string rnd = ra.Next(1, 999).ToString();
            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") +"-"+ rnd + ".htm";
            return fileName;
        }
        /// <summary>
        /// 模板的$標志替換
        /// </summary>
        /// <param name="tags">靜態模板標簽</param>
        /// <param name="chg_tags">替換標簽的內容</param>
        /// <param name="streamstr">template靜態模板的Html字符串</param>
        /// <returns></returns>
        private string chg_tag(string[] tags,string[] chg_tags,string streamstr)
        {
            //str = str.Replace("$title$", txtTitle.Text);//替換Title
            //str = str.Replace("$content$", txtContent.Text);//替換content
            int i=0;
            for (i = 0; i <= tags.Length-1; i++)
            {
                streamstr = streamstr.Replace(tags
, chg_tags[i]);
            }
            return streamstr;
        }
        /// <summary>
        /// 生成靜態頁面
        /// </summary>
        /// <param name="template_url">模板物理地址</param>
        /// <param name="Come_url">生成靜態頁面的相對路徑</param>
        /// <param name="encode">頁面編碼</param>
        /// <param name="outhtmlstr">輸出的Html字符串</param>
        /// <returns></returns>
        private bool outhtml(string Come_url, string encode, string outHtmlstr)
        {
            StreamWriter sw = null;
            Encoding code = Encoding.GetEncoding(encode);
           
            try
            {
                sw = new StreamWriter(Come_url, false, code);
                sw.Write(outHtmlstr);
                sw.Flush();
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sw.Close();
               
            }
        }
    }
}

fileoper.cs [文件處理類]:
using System;
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;
namespace stroper
{
    public class fileoper
    {
        /**/
        ///
        /// 在根目錄下創建文件夾
        ///
        /// 要創建的文件路徑
        public void CreateFolder(string FolderPathName)
        {
            if (FolderPathName.Trim().Length > 0)
            {
                try
                {
                    string CreatePath = System.Web.HttpContext.Current.Server.MapPath
                    (FolderPathName).ToString();
                    if (!Directory.Exists(CreatePath))
                    {
                        Directory.CreateDirectory(CreatePath);
                    }
                }
                catch
                {
                    throw;
                }
            }
        }
        /**/
        ///
        /// 刪除一個文件夾下面的字文件夾和文件
        ///
        ///
        public void DeleteChildFolder(string FolderPathName)
        {
            if (FolderPathName.Trim().Length > 0)
            {
                try
                {
                    string CreatePath = System.Web.HttpContext.Current.Server.MapPath
                    (FolderPathName).ToString();
                    if (Directory.Exists(CreatePath))
                    {
                        Directory.Delete(CreatePath, true);
                    }
                }
                catch
                {
                    throw;
                }
            }
        }
        /**/
        ///
        /// 刪除一個文件
        ///
        ///
        public void DeleteFile(string FilePathName)
        {
            try
            {
                FileInfo DeleFile = new FileInfo(System.Web.HttpContext.Current.Server.MapPath
                (FilePathName).ToString());
                DeleFile.Delete();
            }
            catch
            {
            }
        }
        public void CreateFile(string FilePathName)
        {
            try
            {
                //創建文件夾
                string[] strPath = FilePathName.Split('/');
                CreateFolder(FilePathName.Replace("/" + strPath[strPath.Length - 1].ToString(), "")); //創建文件
                FileInfo CreateFile = new FileInfo(System.Web.HttpContext.Current.Server.MapPath(FilePathName).ToString()); //創建文件
                if (!CreateFile.Exists)
                {
                    FileStream FS = CreateFile.Create();
                    FS.Close();
                }
            }
            catch
            {
            }
        }
        /**/
        ///
        /// 刪除整個文件夾及其字文件夾和文件
        ///
        ///
        public void DeleParentFolder(string FolderPathName)
        {
            try
            {
                DirectoryInfo DelFolder = new DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath
                (FolderPathName).ToString());
                if (DelFolder.Exists)
                {
                    DelFolder.Delete();
                }
            }
            catch
            {
            }
        }
        /**/
        ///
        /// 在文件裡追加內容
        ///
        ///
        public void ReWriteReadinnerText(string FilePathName, string WriteWord)
        {
            try
            {
                //建立文件夾和文件
                //CreateFolder(FilePathName);
                CreateFile(FilePathName);
                //得到原來文件的內容
                FileStream FileRead = new FileStream(System.Web.HttpContext.Current.Server.MapPath
                (FilePathName).ToString(), FileMode.Open, FileAccess.ReadWrite);
                StreamReader FileReadWord = new StreamReader(FileRead, System.Text.Encoding.Default);
                string OldString = FileReadWord.ReadToEnd().ToString();
                OldString = OldString + WriteWord;
                //把新的內容重新寫入
                StreamWriter FileWrite = new StreamWriter(FileRead, System.Text.Encoding.Default);
                FileWrite.Write(WriteWord);
                //關閉
                FileWrite.Close();
                FileReadWord.Close();
                FileRead.Close();
            }
            catch
            {
                throw;
            }
        }
        /**/
        ///
        /// 在文件裡追加內容
        ///
        ///
        public string ReaderFileData(string FilePathName)
        {
            try
            {
                FileStream FileRead = new FileStream(System.Web.HttpContext.Current.Server.MapPath
                (FilePathName).ToString(), FileMode.Open, FileAccess.Read);
                StreamReader FileReadWord = new StreamReader(FileRead, System.Text.Encoding.Default);
                string TxtString = FileReadWord.ReadToEnd().ToString();
                //關閉
                FileReadWord.Close();
                FileRead.Close();
                return TxtString;
            }
            catch
            {
                throw;
            }
        }
        /**/
        ///
        /// 讀取文件夾的文件
        ///
        ///
        ///
        public DirectoryInfo checkValidSessionPath(string FilePathName)
        {
            try
            {
                DirectoryInfo MainDir = new DirectoryInfo(System.Web.HttpContext.Current.Server.MapPath
                (FilePathName));
                return MainDir;
            }
            catch
            {
                throw;
            }
        }
    }
}

頁面調用:
protected void Button1_Click(object sender, EventArgs e)
    {
        string[] a=new string[]{"$title$","$content$"};
        string[] b = new string[] { txtTitle.Text, txtContent.Text };
        tohtml myhtml = new toHtml();
        string htmpath=myhtml.chg_Html("template/template.htm","htm","gb2312",a,b);
        Response.Write(htmpath);
    }
[i]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved