我知道,我知道,我可能会困惑你! :)
我有这个:
namespace WebPageHeaderFixer
{
class Program
{
static void Main(string[] args)
{
string folderToSearch = @"C:\Test\";
foreach (string file in Directory.GetFiles(folderToSearch))
{
string fileString = File.ReadAllText(file);
//Here, I want to insert string X into "fileString" AFTER string Y.
}
}
}
}
我想在LAST Register TagPrefix之后将字符串X添加到变量fileString中:
<%@ Register TagPrefix="ucCal" TagName="popupCalendar" Src="../UserControls/popupCalendar.ascx" %>
<%@ Register TagPrefix="ucRes" TagName="Search" Src="../UserControls/SearchControl.ascx" %>
<%@ Register TagPrefix="abc" TagName="header" Src="../Header.ascx" %>
//I want to insert X here
other code
some more code
some ugly code
我该怎么做?
*请注意,文件之间的最后一个Register标记可能不同。
答案 0 :(得分:1)
您可以逐行而不是单个字符串读取文件吗?然后,您可以遍历这些行以查找您感兴趣的字符串的最后一个匹配项,然后您可以将这些行写回文件,然后在其后面插入字符串。
答案 1 :(得分:1)
使用insert方法和indexof方法以及lastindexof方法可以这样做:
int LastRegister = fileString.LastIndexOf("Register TagPrefix");
int InsertPosition = fileString.IndexOf('>', LastRegister) + 2;
fileString = fileString.Insert(InsertPosition, "String x");
这会将插入位置设置为超过'&gt;'索引的2个字符在最后一次出现“Register TagPrefix”之后,应该将插入位置放在下一行的开头。如果字符串的末尾有2个字符,则可能需要将插入位置偏移一个。