File.ReadLines Metoda

Definice

Načte řádky souboru.

Přetížení

ReadLines(String)

Načte řádky souboru.

ReadLines(String, Encoding)

Čtení řádků souboru se zadaným kódováním

ReadLines(String)

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Načte řádky souboru.

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

Soubor, který se má přečíst.

Návraty

Všechny řádky souboru nebo řádky, které jsou výsledkem dotazu.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .

path je null.

path je neplatný (například je na nenamapované jednotce).

Soubor určený nástrojem path nebyl nalezen.

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path překračuje systémem definovanou maximální délku.

Volající nemá požadované oprávnění.

path určuje soubor, který je jen pro čtení.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path je adresář.

-nebo-

Volající nemá požadované oprávnění.

Příklady

Následující příklad načte řádky souboru a vyhledá řádky, které obsahují zadané řetězce.

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

Následující příklad používá metodu ReadLines v dotazu LINQ, který vytvoří výčet všech adresářů pro soubory, které mají příponu .txt, přečte každý řádek souboru a zobrazí řádek, pokud obsahuje řetězec "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

Poznámky

ReadLines Metody a ReadAllLines se liší následujícím způsobem: Při použití ReadLinesmůžete spustit výčet kolekce řetězců před vrácením celé kolekce; při použití ReadAllLinespříkazu musíte před přístupem k poli počkat na vrácení celého pole řetězců. Proto může být práce s velmi velkými soubory ReadLines efektivnější.

Pomocí metody můžete ReadLines provést následující akce:

Tato metoda používá UTF8 hodnotu kódování.

Platí pro

ReadLines(String, Encoding)

Zdroj:
File.cs
Zdroj:
File.cs
Zdroj:
File.cs

Čtení řádků souboru se zadaným kódováním

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

Soubor, který se má přečíst.

encoding
Encoding

Kódování použité na obsah souboru.

Návraty

Všechny řádky souboru nebo řádky, které jsou výsledkem dotazu.

Výjimky

.NET Framework a .NET Core verze starší než 2.1: path je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .

path je null.

path je neplatný (například je na nenamapované jednotce).

Soubor určený nástrojem path nebyl nalezen.

Při otevírání souboru došlo ke vstupně-výstupní chybě.

path překračuje systémem definovanou maximální délku.

Volající nemá požadované oprávnění.

path určuje soubor, který je jen pro čtení.

-nebo-

Tato operace není na aktuální platformě podporovaná.

-nebo-

path je adresář.

-nebo-

Volající nemá požadované oprávnění.

Poznámky

Tato metoda slouží k určení kódování pro použití čtení souboru.

Metody ReadLines a ReadAllLines se liší následujícím způsobem: Pokud použijete ReadLines, můžete začít s vytvářením výčtu kolekce řetězců před vrácením celé kolekce. Při použití příkazu ReadAllLinesmusíte před přístupem k poli počkat na vrácení celého pole řetězců. Proto může být práce s velmi velkými soubory ReadLines efektivnější.

Pomocí metody můžete ReadLines provést následující akce:

Platí pro