我是c#的新手。
我想删除txt文件中的第一行。
答案 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作为函数的参数