我寫了一個方法,它會遍歷所有文本文件,替換文本,並用所述更改更新文本框。它在我第一次運行之後起作用,但隨後的執行似乎推斷文件沒有第一次更改。替換文件中的文本
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次我的文本文件更新就好了。如果我第二次運行這個文本框,它會重新更新,說它更新了新文件。
我希望這種方法在第一次運行後不會找到任何要替換的文本。
它不會出現您實際上替換文件中的任何內容。所以,你實際上每次都找到相同的內容。 – PhoenixReborn
您不會對文件進行任何更改。您將其數據讀取到strFile,檢查strFile是否包含一些字符串,將srtFile保存迴文件。沒有編輯 – Steve
對不起(這是在我的代碼中,但沒有在我的初始文章 – Demasterpl