File.ReadLines Metodo

Definizione

Legge le righe di un file.

Overload

Nome Descrizione
ReadLines(String, Encoding)

Leggere le righe di un file con una codifica specificata.

ReadLines(String)

Legge le righe di un file.

ReadLines(String, Encoding)

Origine:
File.cs
Origine:
File.cs
Origine:
File.cs
Origine:
File.cs
Origine:
File.cs

Leggere le righe di un file con una codifica specificata.

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)

Parametri

path
String

File da leggere.

encoding
Encoding

Codifica applicata al contenuto del file.

Valori restituiti

Tutte le righe del file o le righe risultanti da una query.

Eccezioni

.NET Framework e .NET versioni core precedenti alla 2.1: è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti dal metodo />

path è null.

path non è valido (ad esempio, si trova in un'unità non mappata).

Impossibile trovare il file specificato da path .

Si è verificato un errore di I/O durante l'apertura del file.

path supera la lunghezza massima definita dal sistema.

Il chiamante non dispone dell'autorizzazione richiesta.

path specifica un file di sola lettura.

-o-

Questa operazione non è supportata nella piattaforma corrente.

-o-

path è una directory.

-o-

Il chiamante non dispone dell'autorizzazione richiesta.

Commenti

Utilizzare questo metodo per specificare una codifica da usare per leggere il file.

I ReadLines metodi e ReadAllLines differiscono come segue: quando si usa ReadLines, è possibile iniziare a enumerare la raccolta di stringhe prima che venga restituita l'intera raccolta. Quando si usa ReadAllLines, è necessario attendere che venga restituita l'intera matrice di stringhe prima di poter accedere alla matrice. Pertanto, quando si lavora con file di grandi dimensioni, ReadLines può essere più efficiente.

È possibile usare il ReadLines metodo per eseguire le operazioni seguenti:

Una riga è definita come una sequenza di caratteri terminati da un ritorno a capo ('\r'), un avanzamento riga ('\n'), un ritorno a capo immediatamente seguito da un feed di riga o dalla fine del file o del flusso. Se il file termina con una sequenza di nuova riga, non viene restituita alcuna riga vuota aggiuntiva. Ad esempio, un file contenente "line1\nline2\n" produce le stesse due righe ("line1" e "line2") di un file contenente "line1\nline2".

Si applica a

ReadLines(String)

Origine:
File.cs
Origine:
File.cs
Origine:
File.cs
Origine:
File.cs
Origine:
File.cs

Legge le righe di un file.

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)

Parametri

path
String

File da leggere.

Valori restituiti

Tutte le righe del file o le righe risultanti da una query.

Eccezioni

.NET Framework e .NET versioni core precedenti alla 2.1: è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti dal metodo />

path è null.

path non è valido (ad esempio, si trova in un'unità non mappata).

Impossibile trovare il file specificato da path .

Si è verificato un errore di I/O durante l'apertura del file.

path supera la lunghezza massima definita dal sistema.

Il chiamante non dispone dell'autorizzazione richiesta.

path specifica un file di sola lettura.

-o-

Questa operazione non è supportata nella piattaforma corrente.

-o-

path è una directory.

-o-

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

L'esempio seguente legge le righe di un file per trovare righe contenenti stringhe specificate.

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

Nell'esempio seguente viene utilizzato il metodo ReadLines in una query LINQ che enumera tutte le directory per i file con estensione .txt, legge ogni riga del file e visualizza la riga se contiene la stringa "Microsoft".

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

Commenti

I ReadLines metodi e ReadAllLines differiscono come segue: quando si utilizza , è possibile iniziare a enumerare la raccolta di stringhe prima che venga restituita l'intera raccolta. Quando si utilizza ReadLinesReadAllLines, è necessario attendere che venga restituita l'intera matrice di stringhe prima di poter accedere alla matrice. Pertanto, quando si lavora con file di grandi dimensioni, ReadLines può essere più efficiente.

È possibile usare il ReadLines metodo per eseguire le operazioni seguenti:

Questo metodo usa UTF8 per il valore di codifica.

Una riga è definita come una sequenza di caratteri seguita da un ritorno a capo ('\r'), un avanzamento riga ('\n') o un ritorno a capo immediatamente seguito da un avanzamento riga o come sequenza finale di caratteri nel file o flusso se termina senza una sequenza di nuova riga. Se il file termina con una sequenza di nuova riga, non viene restituita alcuna riga vuota aggiuntiva. Ad esempio, un file contenente "line1\nline2\n" produce le stesse due righe ("line1" e "line2") di un file contenente "line1\nline2".

Si applica a