没有直接的办法,你只能先把文件整个读到一个string里去,再用正则表达式替换,然后再重新写到那个文件里去。
StreamReader sr = new StreamReader("文件路径");
string source = sr.ReadToEnd();
sr.Close();
Regex r = new Regex("要替换的字符串");
r.replace(source);
StreamWriter sw = new StreamWriter("文件路径",false);
sw.Write(source);
sw.flush();
sw.Close();基本上是这样,手写的 可能有错,最好查一下msdn

解决方案 »

  1.   

    jie  犯了个老错误
    那句 r.Replace(source);应该是 source = r.Replace(source);
      

  2.   

    把文件整个读到一个string里去 , 那  文件很大 , 很耗内存和 时间 有无 更好的 方法?
      

  3.   

    除非你不用文本文件。.net对文本文件的支持实在是一塌糊涂。我也深受其害。我现在基本上抛弃文本文件了。大量数据就用数据库,小量信息就用XML。
      

  4.   

    或者你用P/Invoke直接调用Win32 API效率会高一点。