Removing the first line of a text file in C#
.net, c#, windows
Solution
Instead of `lines.Take`, you can use `lines.Skip`, like:
var lines = File.ReadAllLines("test.txt");
File.WriteAllLines("test.txt", lines.Skip(1).ToArray());
to truncate at the beginning despite the fact that the technique used (read all text and write everything back) is very inefficient.
About the efficient way: The inefficiency comes from the necessity to read the whole file into memory. The other way around could easily be to seek in a stream and copy the stream to another output file, delete the original, and rename the old. That one would be equally fast and yet consume much less memory.
Truncating a file at the end is much easier. You can just find the trunaction position and call `FileStream.SetLength()`.
Problem
I can currently remove the last line of a text file using: ``` var lines = System.IO.File.ReadAllLines("test.txt"); System.IO.File.WriteAllLines("test.txt", lines.Take(lines.Length - 1).ToArray()); ``` Although, how is it possible to instead remove the beginning of the text file?