我正在创建一个程序进入网站(从文本文件加载的网站列表),执行一些任务,然后从文本文件进入下一个网站。
这样可行,但现在我需要在程序完成后从文件中删除一行(网站)。我该怎么办?
这是我用网站加载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' });
}
答案 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
语句来关闭资源等 - 您在示例代码中没有这样做。 (你永远不会关闭文件句柄......)