(Visual Studio C#2010,Windows Form App) 嘿,我想替换.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" ); } {
}
}
}
答案 0 :(得分:3)
在您的代码中,您使用相同的文件进行读写 - 您只需要写一个与您正在阅读的文件不同的文件。
StreamReader reader = new StreamReader(file);
string content = reader.ReadToEnd();
reader.Close();
...
StreamWriter writer = new StreamWriter(some_other_file); // <--- here
writer.Write(content);
writer.Close();
答案 1 :(得分:0)
确保这样做:
使用System.Text.RegularExpressions;