File.ReadLines Metoda

Definicja

Odczytuje wiersze pliku.

Przeciążenia

ReadLines(String)

Odczytuje wiersze pliku.

ReadLines(String, Encoding)

Odczytywanie wierszy pliku z określonym kodowaniem.

ReadLines(String)

Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs

Odczytuje wiersze pliku.

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)

Parametry

path
String

Plik do odczytania.

Zwraca

Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.

Wyjątki

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez metodęGetInvalidPathChars().

path to null.

path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).

Nie można odnaleźć pliku określonego przez path program .

Podczas otwierania pliku wystąpił błąd We/Wy.

path przekracza maksymalną długość zdefiniowaną przez system.

Obiekt wywołujący nie posiada wymaganych uprawnień.

path określa plik, który jest tylko do odczytu.

-lub-

Ta operacja nie jest obsługiwana na bieżącej platformie.

-lub-

path jest katalogiem.

-lub-

Obiekt wywołujący nie posiada wymaganych uprawnień.

Przykłady

Poniższy przykład odczytuje wiersze pliku, aby znaleźć wiersze zawierające określone ciągi.

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

W poniższym przykładzie użyto ReadLines metody w zapytaniu LINQ, która wylicza wszystkie katalogi plików z rozszerzeniem .txt, odczytuje każdy wiersz pliku i wyświetla wiersz, jeśli zawiera ciąg "Microsoft".

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

Uwagi

Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku użycia metody ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. W przypadku użycia ReadAllLinesmetody należy poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines może być wydajniejszy.

Możesz użyć ReadLines metody , aby wykonać następujące czynności:

Ta metoda używa UTF8 wartości kodowania.

Dotyczy

ReadLines(String, Encoding)

Źródło:
File.cs
Źródło:
File.cs
Źródło:
File.cs

Odczytywanie wierszy pliku z określonym kodowaniem.

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)

Parametry

path
String

Plik do odczytania.

encoding
Encoding

Kodowanie stosowane do zawartości pliku.

Zwraca

Wszystkie wiersze pliku lub wiersze, które są wynikiem zapytania.

Wyjątki

.NET Framework i .NET Core w wersjach starszych niż 2.1: path jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez metodę GetInvalidPathChars() .

path to null.

path jest nieprawidłowy (na przykład znajduje się na niezamapowanym dysku).

Nie można odnaleźć pliku określonego przez path program .

Podczas otwierania pliku wystąpił błąd We/Wy.

path przekracza maksymalną długość zdefiniowaną przez system.

Obiekt wywołujący nie posiada wymaganych uprawnień.

path określa plik, który jest tylko do odczytu.

-lub-

Ta operacja nie jest obsługiwana na bieżącej platformie.

-lub-

path jest katalogiem.

-lub-

Obiekt wywołujący nie posiada wymaganych uprawnień.

Uwagi

Użyj tej metody, aby określić kodowanie używane do odczytywania pliku.

Metody ReadLines i ReadAllLines różnią się w następujący sposób: w przypadku użycia metody ReadLinesmożna rozpocząć wyliczanie kolekcji ciągów przed zwróceniem całej kolekcji. W przypadku użycia metody ReadAllLinesnależy poczekać na zwrócenie całej tablicy ciągów, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z bardzo dużymi plikami ReadLines może być wydajniejszy.

Możesz użyć ReadLines metody , aby wykonać następujące czynności:

Dotyczy