我编写了一个方法,它将遍历所有文本文件,替换文本,并使用所述更改更新文本框。它在我第一次运行后工作,但随后的执行似乎推断出文件第一次没有更改。
private void changeText(string searchString, string newString, FileInfo[] listOfFiles)
{
foreach (FileInfo tempfi in listOfFiles)//Foreach File
{
string fileToBeEdited = tempfi.FullName;
File.SetAttributes(fileToBeEdited, File.GetAttributes(fileToBeEdited) & ~FileAttributes.ReadOnly); //Remove ReadOnly Property
string strFile = System.IO.File.ReadAllText(fileToBeEdited); //Reads In Text File
if(strFile.Contains(newString))//If the replacement string is contained in the text file
{
strFile = strFile.Replace(searchString, newString);
System.IO.File.WriteAllText(fileToBeEdited, strFile); //Write changes to File
myTextBox.Text = "File Changed: " + fileTobeEdited.ToString() + Environment.NewLine; //Notify User
}
}
}
如果我运行 1 次或 100 次,我的文本文件就会更新得很好。如果我第二次运行它,我的文本框会重新更新,说它更新了新文件。
我希望此方法在第一次运行后找不到任何要替换的文本。