从文本文件中删除一行

时间:2011-10-25 19:21:35

标签: c# file-io

我正在创建一个程序进入网站(从文本文件加载的网站列表),执行一些任务,然后从文本文件进入下一个网站。

这样可行,但现在我需要在程序完成后从文件中删除一行(网站)。我该怎么办?

这是我用网站加载txt的代码:

DialogResult result = openFileDialog1.ShowDialog();
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
    System.IO.StreamReader sr = new
    System.IO.StreamReader(openFileDialog1.FileName);
    text = sr.ReadToEnd();
    split = text.Split(new Char[] {'\n' });
}

1 个答案:

答案 0 :(得分:4)

不是分裂,而是使用File.ReadAllLines或 - 从.NET 4 - File.ReadLines更简单。后者逐行读取,因此您可以使用:

var linesToKeep = File.ReadLines(file)
                      .Where(line => line != lineYouWantToRemove)
                      .ToArray();

File.WriteAllLines(file, linesToKeep);

(当然,这也适用于ReadAllLines - 你最终只能在内存中获得更多内容。)

请注意,使用File.*方法意味着您不必担心编写using语句来关闭资源等 - 您在示例代码中没有这样做。 (你永远不会关闭文件句柄......)