I'm exporting text to a file in C# using System.IO.File.AppendAllText, and passing in the text file, and then the text I want to export with \n added to the end. When I view the text document, they are not on different lines, although that pesky return-line character is there between the lines. So the system may think it's two line, but a user sees it as one. How can this be fixed automatically without doing a find-replace every time I generate a file?
System.IO.File.AppendAllText(@"./WarningsLog.txt", line + "\n");
You need to use the Environment.NewLine instead of \n, because newline can be more than that. in windows (if I'm not mistaken), the default is actually \r\n
Although, using \r\n, will help you temporary, using Environment.NewLine is the proper way to go
First off, there are a couple of ways to represent the new line. The most commonly used are:
\n character. \n here represents the newline character.\r\n characters. \r here goes for the carriage return character.If you are writing something platform-independent, Environment.NewLine will do the job for you and pick the correct character(s).
MSDN states it represents:
A string containing "\r\n" for non-Unix platforms, or a string containing "\n" for Unix platforms.
Also, in some cases you may want to use System.IO.File.AppendAllLines that takes an IEnumerable<string> as the lines collection and appends it to the file. It uses Environment.NewLine inside.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With