using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
/*
* 生成静态
* */
namespace WebApplication5
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//思路是替换掉模板中的特征字符
string mbPath = Server.MapPath("tem/index.htm");
Encoding code = Encoding.GetEncoding("gb2312");
StreamReader sr = null;
StreamWriter sw = null;
string str = null;
//读取
try
{
sr = new StreamReader(mbPath, code);
str = sr.ReadToEnd();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sr.Close();
}
//=================查找中间包含的字符=====================================================
// Regex.Replace(str, @"(?s)\{rui:artlist.*?\{/rui:artlist\}", "");
string pattern = @"(?is){rui:artlist[^{]+{/rui:artlist}";
Regex reg = new Regex(pattern, RegexOptions.Compiled);
Match m = reg.Match(str);
if (m.Success)
{
string content = m.Value;
str = str.Replace(content, "这个是替换的标签");
// m = reg.Match(str);
}
// str = Regex.Replace(str, @"(?is){rui:artlist[^{]+{/rui:artlist}", "这个是替换后的内容");
//===================end 查找中间包含的字符==================================================
//根据时间自动命名,扩展名也可以自行修改
string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";
str = str.Replace("{rui:title}", this.TextBox1.Text);//替换Title
str = str.Replace("{rui:content}", this.TextBox2.Text);//替换content
string newfilename = DateTime.Now.ToString("yyyyMM");
//生成静态文件
try
{
CreateFile(newfilename);
sw = new StreamWriter(Server.MapPath("htm/"+newfilename+"/") + fileName, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
throw ex;
}
finally
{
sw.Close();
Response.Write("恭喜" + fileName + "已经生成,保存在htm文件夹下!");
}
}
///
/// 创建文件夹
///
/// 文件名称
public void CreateFile(string FilePathName)
{
string[] strPath= FilePathName.Split('/');
CreateFolder(FilePathName.Replace("/" + strPath[strPath.Length-1].ToString(),"")); //创建文件
}
public void CreateFolder(string FolderPathName)
{
if (FolderPathName.Trim().Length > 0)
{
try
{
string CreatePath = System.Web.HttpContext.Current.Server.MapPath
("htm/" + FolderPathName).ToString();
if (!Directory.Exists(CreatePath))
{
Directory.CreateDirectory(CreatePath);
}
}
catch
{
throw;
}
}
}
}
}