2012-08-28 59 views
2

(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

只需向「StreamWriter」提供一個不同的文件即可。現在您提供與您的StreamReader相同的文件。 – Styxxy

回答

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(); 
0

確保做到這一點:使用System.Text.RegularExpressions

;

相關問題