Search code examples
c#filelinesystem.io.file

How to delete last line in a text file?


I have a simple log text file with the extension of .txt with a white space line at the end of that text file every time the log file is generated from a 3rd party program.

Therefore is there any methods or codes that I can utilize to delete the last line of the text file?

An example of the log text file:

Sun Jul 22 2001 02:37:46,73882,...b,r/rrwxrwxrwx,0,0,516-128-3,C:/WINDOWS/Help/digiras.chm
Sun Jul 22 2001 02:44:18,10483,...b,r/rrwxrwxrwx,0,0,480-128-3,C:/WINDOWS/Help/cyycoins.chm
Sun Jul 22 2001 02:45:32,10743,...b,r/rrwxrwxrwx,0,0,482-128-3,C:/WINDOWS/Help/cyzcoins.chm
Sun Jul 22 2001 04:26:14,174020,...b,r/rrwxrwxrwx,0,0,798-128-3,C:/WINDOWS/system32/spool/drivers/color/kodak_dc.icm

Solution

  • How about something like :

    var lines = System.IO.File.ReadAllLines("...");
    System.IO.File.WriteAllLines("...", lines.Take(lines.Length - 1).ToArray());
    

    Explanation:

    Technically, you don't delete a line from a file. You read the contents of a file and write them back excluding the content you want deleted.

    What this code does is read all the lines into an array, and write these lines back to the file excluding only the last line. (Take() method (Part of LINQ) takes number of lines specified which in our case, is length - 1). Here, var lines can be read as String[] lines.