File.ReadLines Methode

Definition

Liest die Zeilen einer Datei.

Überlädt

Name Beschreibung
ReadLines(String, Encoding)

Lesen Sie die Zeilen einer Datei mit einer angegebenen Codierung.

ReadLines(String)

Liest die Zeilen einer Datei.

ReadLines(String, Encoding)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Lesen Sie die Zeilen einer Datei mit einer angegebenen Codierung.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path, System::Text::Encoding ^ encoding);
public static System.Collections.Generic.IEnumerable<string> ReadLines(string path, System.Text.Encoding encoding);
static member ReadLines : string * System.Text.Encoding -> seq<string>
Public Shared Function ReadLines (path As String, encoding As Encoding) As IEnumerable(Of String)

Parameter

path
String

Die zu lesende Datei.

encoding
Encoding

Die Codierung, die auf den Inhalt der Datei angewendet wird.

Gibt zurück

Alle Zeilen der Datei oder die Zeilen, die das Ergebnis einer Abfrage sind.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, wie durch die methode GetInvalidPathChars() definiert.

path ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Die angegebene path Datei wurde nicht gefunden.

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path überschreitet die vom System definierte maximale Länge.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path Gibt eine Datei an, die schreibgeschützt ist.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Hinweise

Verwenden Sie diese Methode, um eine Codierung anzugeben, die zum Lesen der Datei verwendet werden soll.

Die ReadLines Methoden unterscheiden ReadAllLines sich wie folgt: Bei Verwendung ReadLineskönnen Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Bei Verwendung ReadAllLinesmüssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, ReadLines wenn Sie mit sehr großen Dateien arbeiten.

Sie können die ReadLines Methode verwenden, um Folgendes auszuführen:

Eine Zeile wird als Abfolge von Zeichen definiert, die durch einen Wagenrücklauf ('\r'), einen Zeilenvorschub ('\n'), einen Wagenrücklauf unmittelbar gefolgt von einem Zeilenvorschub oder dem Ende der Datei oder des Datenstroms beendet werden. Wenn die Datei mit einer Zeilensequenz endet, wird keine zusätzliche leere Zeile zurückgegeben. Beispielsweise erzeugt eine Datei "line1\nline2\n" , die die gleichen beiden Zeilen ("line1" und "line2") wie eine Datei enthält "line1\nline2".

Gilt für:

ReadLines(String)

Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs
Quelle:
File.cs

Liest die Zeilen einer Datei.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ ReadLines(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> ReadLines(string path);
static member ReadLines : string -> seq<string>
Public Shared Function ReadLines (path As String) As IEnumerable(Of String)

Parameter

path
String

Die zu lesende Datei.

Gibt zurück

Alle Zeilen der Datei oder die Zeilen, die das Ergebnis einer Abfrage sind.

Ausnahmen

.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path ist eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen, das von der methode GetInvalidPathChars() definiert ist.

path ist null.

path ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).

Die angegebene path Datei wurde nicht gefunden.

Beim Öffnen der Datei ist ein E/A-Fehler aufgetreten.

path überschreitet die vom System definierte maximale Länge.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

path Gibt eine Datei an, die schreibgeschützt ist.

-oder-

Dieser Vorgang wird auf der aktuellen Plattform nicht unterstützt.

-oder-

path ist ein Verzeichnis.

-oder-

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel werden die Zeilen einer Datei gelesen, um Zeilen zu finden, die angegebene Zeichenfolgen enthalten.

foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(line);
    }
}
for line in File.ReadLines @"d:\data\episodes.txt" do
    if line.Contains "episode" && line.Contains "2006" then
        printfn $"{line}"
For Each line As String In File.ReadLines("d:\data\episodes.txt")
    If line.Contains("episode") And line.Contains("2006") Then
        Console.WriteLine(line)
    End If
Next line

Im folgenden Beispiel wird die ReadLines-Methode in einer LINQ-Abfrage verwendet, die alle Verzeichnisse für Dateien aufzählt, die über eine .txt Erweiterung verfügen, jede Zeile der Datei liest und die Zeile anzeigt, wenn sie die Zeichenfolge "Microsoft" enthält.

using System;
using System.IO;
using System.Linq;

partial class Example2
{
    static void SearchOptionExample()
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }

            Console.WriteLine($"{files.Count()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
open System
open System.IO

try
    // Set a variable to the My Documents path.
    let docPath =
        Environment.GetFolderPath Environment.SpecialFolder.MyDocuments

    let files =
        query {
            for file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories) do
            for line in File.ReadLines file do
            where (line.Contains "Microsoft")
            select {| File = file; Line = line |}
        }

    for f in files do
        printfn $"{f.File}\t{f.Line}"
    printfn $"{Seq.length files} files found."

with
| :? UnauthorizedAccessException as uAEx -> printfn $"{uAEx.Message}"
| :? PathTooLongException as pathEx -> printfn $"{pathEx.Message}"
Imports System.IO
Imports System.Xml.Linq

Partial Class Example2
    Shared Sub SearchOptionExample()

        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.curFile}\t{f.curLine}")
            Next

            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try

    End Sub
End Class

Hinweise

Die ReadLines methoden ReadAllLines unterscheiden sich wie folgt: Bei Verwendung ReadLineskönnen Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Bei Verwendung ReadAllLinesmüssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, ReadLines wenn Sie mit sehr großen Dateien arbeiten.

Sie können die ReadLines Methode verwenden, um Folgendes auszuführen:

Diese Methode verwendet UTF8 für den Codierungswert.

Eine Zeile wird als Eine Folge von Zeichen definiert, gefolgt von einer Wagenrücklauf ('\r'), einem Zeilenvorschub ('\n') oder einer Wagenrücklauf unmittelbar gefolgt von einem Zeilenvorschub oder als endgültige Abfolge von Zeichen in der Datei oder datenstrom, wenn sie ohne eine Zeilenabfolge endet. Wenn die Datei mit einer Zeilensequenz endet, wird keine zusätzliche leere Zeile zurückgegeben. Beispielsweise erzeugt eine Datei "line1\nline2\n" , die die gleichen beiden Zeilen ("line1" und "line2") wie eine Datei enthält "line1\nline2".

Gilt für: