从文本文件中删除最后一行

我需要从文本文件中删除最后一行。 我知道如何在C#中打开和保存文本文件,但是如何删除文本文件的最后一行?

文本文件总是不同的大小(有些有80行,有些有20行)。

有人可以告诉我该怎么做吗?

谢谢。

使用少量线条,您可以轻松使用这样的东西

string filename = @"C:\Temp\junk.txt"; string[] lines = File.ReadAllLines(filename); File.WriteAllLines(filename, lines.Take(lines.Count() - 1)); 

但是,随着文件变大,您可能希望使用类似的方式将数据流入和流出

 string filename = @"C:\Temp\junk.txt"; string tempfile = @"C:\Temp\junk_temp.txt"; using (StreamReader reader = new StreamReader(filename)) { using (StreamWriter writer = new StreamWriter(tempfile)) { string line = reader.ReadLine(); while (!reader.EndOfStream) { writer.WriteLine(line); line = reader.ReadLine(); } // by reading ahead, will not write last line to file } } File.Delete(filename); File.Move(tempfile, filename); 

对于小文件,一种简单的方法(尽管效率最高)将是:

 string[] lines = File.ReadAllLines(fileName); Array.Resize(ref lines, lines.length - 1); File.WriteAllLines(fileName, lines); 
  • 如何在asp.net mvc 2中进行整数模型validation
  • 枚举大小以字节为单位
  • 哪里有企业库4.1记录器,日志?
  • C#2.0中的扩展方法
  • 使用“方法隐藏”有什么意义?
  • 如何在WPF中的密码框中将插入位置设置为特定索引
  • 如何将同步上下文添加到异步测试方法
  • 无法在.aspx中的querystring中传递多个值以在运行时报告
  • C#Threading / Async:在UI可交互的情况下在后台运行任务
  • WCF,接口返回类型和KnownTypes
  • SQL Server:使用原始exception编号的Rethrowexception