首页 文章

从文本文件中删除一行

提问于
浏览 1804
2

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

这是有效的,但现在我需要在程序完成后从文件中删除一行(网站) . 我该怎么做?

这是我用网站加载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 回答

  • 4

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

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

    (那也适用于 ReadAllLines ,当然 - 你最终会在内存中获得更多内容 . )

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

相关问题