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
| 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:
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:
- Eseguire query LINQ to Objects su un file per ottenere un set filtrato delle relative righe.
- Scrivere la raccolta restituita di righe in un file con il File.WriteAllLines(String, IEnumerable<String>, Encoding) metodo oppure aggiungerle a un file esistente con il File.AppendAllLines(String, IEnumerable<String>, Encoding) metodo .
- Creare un'istanza immediatamente popolata di una raccolta che accetta una IEnumerable<T> raccolta di stringhe per il relativo costruttore, ad esempio un IList<T> oggetto o .Queue<T>
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:
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:
- Eseguire query LINQ to Objects su un file per ottenere un set filtrato delle relative righe.
- Scrivere la raccolta restituita di righe in un file con il File.WriteAllLines(String, IEnumerable<String>) metodo oppure aggiungerle a un file esistente con il File.AppendAllLines(String, IEnumerable<String>) metodo .
- Creare un'istanza immediatamente popolata di una raccolta che accetta una IEnumerable<T> raccolta di stringhe per il relativo costruttore, ad esempio un IList<T> oggetto o .Queue<T>
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".