すべてのテキストファイルを調べ、テキストを置き換え、上記の変更でテキストボックスを更新するメソッドを作成しました。初めて実行した後は機能しますが、その後の実行では、ファイルが最初に変更されていないことが推測されているようです。
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回実行すると、テキストファイルは正常に更新されます。これを2回実行すると、テキストボックスが再更新され、新しいファイルが更新されたと表示されます。
このメソッドは、最初に実行した後、置き換えるテキストが見つからないことを期待しています。