如何删除文本文件中的第一行

时间:2011-09-14 16:46:01

标签: c#

我是c#的新手。

我想删除txt文件中的第一行。

4 个答案:

答案 0 :(得分:15)

基本上你需要将它复制到另一个文件 - 你不能在“就地”删除(或插入)文件中的数据。例如,在.NET 4中很容易:

var lines = File.ReadLines("input.txt").Skip(1);
File.WriteAllLines("output.txt", lines);

在旧版本的.NET中,稍微更多的工作,至少如果你想避免将整个文件加载到内存中,但仍然不是太难。如果您需要旧版本的代码(并说明哪个版本),请告诉我。

编辑:正如评论中所讨论的,如果你愿意将整个文件加载到内存中,你可以直接写回同一个文件:

// Note that ReadAllLines is eager, not lazy like ReadLines
var lines = File.ReadAllLines("file.txt").Skip(1);
File.WriteAllLines("file.txt", lines);

答案 1 :(得分:1)

        System.IO.StreamReader fileR = new System.IO.StreamReader(filePath);
        string data = fileR.ReadToEnd();
        fileR.Close();
        string firstline = data.Substring(0, data.IndexOf('\n') + 1);
        data = Regex.Replace(data, firstline, "");
        StreamWriter file = new StreamWriter(filePath, false);
        file.Write(data);
        file.Close();

答案 2 :(得分:0)

从文本文件中删除第一行

System.IO.StreamReader file = new System.IO.StreamReader(filePath);
string data = file.ReadToEnd();
file.Close();
data = Regex.Replace(data, "<.*\n", "");
System.IO.StreamWriter file = new System.IO.StreamWriter(filePath, false);
file.Write(data);
file.Close();

答案 3 :(得分:0)

也可以一行完成

File.WriteAllLines(origialFilePath,File.ReadAllLines(originalFilePath).Skip(1));

我假设您将originalFilePath作为函数的参数