File.ReadLines Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Legge le righe di un file.
Overload
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
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.
Restituisce
Tutte le righe del file o le righe risultanti da una query.
Eccezioni
.NET Framework e versioni di .NET Core precedenti alla 2.1: path
è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi come definito dal metodo GetInvalidPathChars().
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 metodi ReadLines e ReadAllLines differiscono nel modo seguente: quando si utilizza 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 metodo ReadLines per eseguire le operazioni seguenti:
Eseguire LINQ to Objects query su un file per ottenere un set filtrato delle righe.
Scrivere la raccolta restituita di righe in un file con il metodo File.WriteAllLines(String, IEnumerable<String>, Encoding) oppure aggiungerle a un file esistente con il metodo File.AppendAllLines(String, IEnumerable<String>, Encoding).
Creare un'istanza immediatamente popolata di una raccolta che accetta una raccolta di stringhe IEnumerable<T> per il relativo costruttore, ad esempio un IList<T> o un Queue<T>.
Si applica a
ReadLines(String)
- 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.
Restituisce
Tutte le righe del file o le righe risultanti da una query.
Eccezioni
.NET Framework e versioni di .NET Core precedenti alla 2.1: path
è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti dal metodo GetInvalidPathChars().
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;
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
Commenti
I metodi ReadLines e ReadAllLines differiscono nel modo seguente: quando si utilizza 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 metodo ReadLines per eseguire le operazioni seguenti:
Eseguire LINQ to Objects query su un file per ottenere un set filtrato delle righe.
Scrivere la raccolta restituita di righe in un file con il metodo File.WriteAllLines(String, IEnumerable<String>) oppure aggiungerle a un file esistente con il metodo File.AppendAllLines(String, IEnumerable<String>).
Creare un'istanza immediatamente popolata di una raccolta che accetta una raccolta di stringhe IEnumerable<T> per il relativo costruttore, ad esempio un IList<T> o un Queue<T>.
Questo metodo usa UTF8 per il valore di codifica.