public static FileMgr_Rep UploadLamborFrontEndWeb_IndexContent_Files(int MasterID, MasterLogoUrlSettingInfo ContentFillConent, int type, string StatisticalCode) { FileMgr_Rep ReqInfo = new FileMgr_Rep(); //涉及对服务器上文件读写,可能会抛出异常 try { //获取文件地址 string path = AppDomain.CurrentDomain.BaseDirectory; //测试时获取到的发布后的地址格式:D:\LamborPublic\LamborBackOfficeBLServicePublic\ //获取项目根目录的上一级目录(需修改文件夹目录于之同级) int index = path.LastIndexOf("\"); path = path.Substring(0, index); index = path.LastIndexOf("\"); path = path.Substring(0, index); //生成指定站长的文件路径(本地测试需要构造测试环境———>在调用此方法的项目根目录同级添加Lambor.GameFrontEnd.MasterID文件夹,内部录入Index.html文件) path = path + "\Lambor.GameFrontEnd." + MasterID + "\index.html"; //获取文件内容 Stream myStream = new FileStream(path, FileMode.Open,FileAccess.ReadWrite); StreamReader myStreamReader = new StreamReader(myStream, Encoding.UTF8); string strhtml = myStreamReader.ReadToEnd(); //正则 string pattern = string.Empty; //修改站长前端网站的key,title, description if (type == 1) { //标记添加块位置 int headIndex = -1; //C# 使用正则匹配html的三个标签(存在则替换内容,不存在则新增内容) //匹配修改title标签的正则表达式 if (ContentFillConent.UpdateType == 1) { if (strhtml.IndexOf("<title>") > -1) { pattern = @"<title>(?<str>.*?)</title>"; strhtml = Regex.Replace(strhtml, pattern, "<title>" + ContentFillConent.Title + "</title>"); } else { //把数据添加到</head>之前 headIndex = strhtml.IndexOf("</head>"); strhtml = strhtml.Insert(headIndex, "<title>" + ContentFillConent.Title + "</title>"); } }
} myStream.Seek(0, SeekOrigin.Begin); myStream.SetLength(0); StreamWriter sw = new StreamWriter(myStream, Encoding.UTF8); sw.Write(strhtml); sw.Flush(); sw.Close(); myStream.Close(); ReqInfo.Ret = (int)ErrorRetType.SUCCESS; return ReqInfo; } catch (Exception ex) { ReqInfo.Ret = (int)ErrorRetType.COMM_FAIL; //寫入操作Log(对前端html5文件的操作) var TitleInfoList = new List<string>(); TitleInfoList.Add(MasterID.ToString()); BackOffice.Utility.OperatorLogUtility.WriteOperatorLog_Update(MasterID, MasterID, LamborDataModelLib.Model.Defines.ModifyType.UploadLamborFrontEndWeb_IndexContent, TitleInfoList); return ReqInfo; } }