File.ReadAllLines Method (String)
Opens a text file, reads all lines of the file, and then closes the file.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- path
-
Type:
System.String
The file to open for reading.
| Exception | Condition |
|---|---|
| ArgumentException | path is a zero-length string, contains only white space, or contains one or more invalid characters as defined by InvalidPathChars. |
| ArgumentNullException | path is null. |
| PathTooLongException | The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters. |
| DirectoryNotFoundException | The specified path is invalid (for example, it is on an unmapped drive). |
| IOException | An I/O error occurred while opening the file. |
| UnauthorizedAccessException | path specified a file that is read-only. -or- This operation is not supported on the current platform. -or- path specified a directory. -or- The caller does not have the required permission. |
| FileNotFoundException | The file specified in path was not found. |
| NotSupportedException | path is in an invalid format. |
| SecurityException | The caller does not have the required permission. |
This method opens a file, reads each line of the file, then adds each line as an element of a string array. It then closes the file. A line is defined as a sequence of characters followed by a carriage return ('\r'), a line feed ('\n'), or a carriage return immediately followed by a line feed. The resulting string does not contain the terminating carriage return and/or line feed.
This method attempts to automatically detect the encoding of a file based on the presence of byte order marks. Encoding formats UTF-8 and UTF-32 (both big-endian and little-endian) can be detected.
The following code example demonstrates the use of the ReadAllLines method to display the contents of a file. In this example a file is created, if it doesn't already exist, and text is added to it.
using System; using System.IO; class Test { public static void Main() { string path = @"c:\temp\MyTest.txt"; // This text is added only once to the file. if (!File.Exists(path)) { // Create a file to write to. string[] createText = { "Hello", "And", "Welcome" }; File.WriteAllLines(path, createText); } // This text is always added, making the file longer over time // if it is not deleted. string appendText = "This is extra text" + Environment.NewLine; File.AppendAllText(path, appendText); // Open the file to read from. string[] readText = File.ReadAllLines(path); foreach (string s in readText) { Console.WriteLine(s); } } }
for access to read from a file or directory. Associated enumeration: FileIOPermissionAccess.Read
Available since 10
.NET Framework
Available since 2.0