File.ReadLines Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest die Zeilen einer Datei.
Überlädt
ReadLines(String) |
Liest die Zeilen einer Datei. |
ReadLines(String, Encoding) |
Liest die Zeilen einer Datei mit einer angegebenen Codierung. |
ReadLines(String)
- 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 älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen, die von der GetInvalidPathChars() -Methode definiert werden.
path
ist null
.
path
ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Die durch path
angegebene 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 schreibgeschützte Datei an.
- oder -
Dieser Vorgang wird von 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 mit einer .txt-Erweiterung aufzählt, jede Zeile der Datei liest und die Zeile anzeigt, wenn sie die Zeichenfolge "Microsoft" enthält.
using System;
using System.IO;
using System.Linq;
class Program
{
static void Main(string[] args)
{
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().ToString()} 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
Module Module1
Sub Main()
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.File}\t{f.Line}")
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 Module
Hinweise
Die ReadLines Methoden und ReadAllLines unterscheiden sich wie folgt: Wenn Sie verwenden ReadLines, können Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden ReadAllLines, müssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann, wenn Sie mit sehr großen Dateien arbeiten, ReadLines effizienter sein.
Mit der ReadLines -Methode können Sie folgende Aktionen ausführen:
Führen Sie LINQ to Objects Abfragen für eine Datei aus, um einen gefilterten Satz ihrer Zeilen zu erhalten.
Schreiben Sie die zurückgegebene Auflistung von Zeilen mit der File.WriteAllLines(String, IEnumerable<String>) -Methode in eine Datei, oder fügen Sie sie mit der File.AppendAllLines(String, IEnumerable<String>) -Methode an eine vorhandene Datei an.
Erstellen Sie eine sofort aufgefüllte instance einer Auflistung, die eine IEnumerable<T> Auflistung von Zeichenfolgen für den Konstruktor akzeptiert, z. B. eine IList<T> oder eine Queue<T>.
Diese Methode verwendet UTF8 für den Codierungswert.
Gilt für:
ReadLines(String, Encoding)
- Quelle:
- File.cs
- Quelle:
- File.cs
- Quelle:
- File.cs
Liest 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 auf den Inhalt der Datei angewendete Codierung.
Gibt zurück
Alle Zeilen der Datei oder die Zeilen, die das Ergebnis einer Abfrage sind.
Ausnahmen
.NET Framework und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen, wie von der GetInvalidPathChars() -Methode definiert.
path
ist null
.
path
ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Die durch path
angegebene 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 schreibgeschützte Datei an.
- oder -
Dieser Vorgang wird von 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 zum Lesen der Datei anzugeben.
Die ReadLines Methoden und ReadAllLines unterscheiden sich wie folgt: Wenn Sie verwenden ReadLines, können Sie mit dem Aufzählen der Auflistung von Zeichenfolgen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden ReadAllLines, müssen Sie warten, bis das gesamte Array von Zeichenfolgen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann, wenn Sie mit sehr großen Dateien arbeiten, ReadLines effizienter sein.
Mit der ReadLines -Methode können Sie folgende Aktionen ausführen:
Führen Sie LINQ to Objects Abfragen für eine Datei aus, um einen gefilterten Satz ihrer Zeilen zu erhalten.
Schreiben Sie die zurückgegebene Auflistung von Zeilen mit der File.WriteAllLines(String, IEnumerable<String>, Encoding) -Methode in eine Datei, oder fügen Sie sie mit der File.AppendAllLines(String, IEnumerable<String>, Encoding) -Methode an eine vorhandene Datei an.
Erstellen Sie eine sofort aufgefüllte instance einer Auflistung, die eine IEnumerable<T> Auflistung von Zeichenfolgen für den Konstruktor akzeptiert, z. B. eine IList<T> oder eine Queue<T>.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für