C# 替换多个文件中的文本,但保留原始文本

C# 替换多个文件中的文本,但保留原始文本,c#,winforms,C#,Winforms,(Visual Studio C#2010,Windows窗体应用程序) 嘿,我想替换.txt文件中的一些单词。我知道怎么做,但我不知道如何保持原始文件以及。我想将修改后的文本输出到与输入文件同名的文件中。否则,没有简单的方法进行比较,因为原始文件会被覆盖 这就是我目前所得到的 this.openFileDialog1.Filter =`enter code here`"TEXT (*.xml;*.txt|"; this.openFileDialog1.Multiselect = true; t

(Visual Studio C#2010,Windows窗体应用程序) 嘿,我想替换.txt文件中的一些单词。我知道怎么做,但我不知道如何保持原始文件以及。我想将修改后的文本输出到与输入文件同名的文件中。否则,没有简单的方法进行比较,因为原始文件会被覆盖

这就是我目前所得到的

this.openFileDialog1.Filter =`enter code here`"TEXT (*.xml;*.txt|";
this.openFileDialog1.Multiselect = true;
this.openFileDialog1.Title = "My text editor";
DialogResult dr = openFileDialog1.ShowDialog();

if (dr == DialogResult.OK)
{
    foreach (String file in openFileDialog1.FileNames)
    {
        try
        {
            StreamReader reader = new StreamReader(file);
            string content = reader.ReadToEnd();
            reader.Close();

            content = Regex.Replace(content, "play", "player");
            content = Regex.Replace(content, "game", "gamer");
            content = Regex.Replace(content, "walk", "walking");
            StreamWriter writer = new StreamWriter(file);
            writer.Write(content); writer.Close(); 
        }
        catch
        { // The user lacks appropriate permissions to read files, discover paths, etc. MessageBox.Show("Security error. Please contact your administrator for details.\n\n" + "Error message: Not found" ); } {
        }
      }
}

在您的代码中,您正在使用相同的文件进行读取和写入-您只需将其写入与您正在读取的文件不同的文件

StreamReader reader = new StreamReader(file);
string content = reader.ReadToEnd();
reader.Close();

...

StreamWriter writer = new StreamWriter(some_other_file); // <--- here
writer.Write(content); 
writer.Close();
StreamReader=新的StreamReader(文件);
字符串内容=reader.ReadToEnd();
reader.Close();
...
StreamWriter writer=新的StreamWriter(一些其他文件);// 请确保执行以下操作:


使用System.Text.RegularExpressions

只需为您的
StreamWriter
提供一个不同的文件即可。现在,您提供了与您的
StreamReader
相同的文件。