File.ReadLines Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lit les lignes d’un fichier.
Surcharges
ReadLines(String, Encoding) |
Lit les lignes d’un fichier qui a un encodage spécifié. |
ReadLines(String) |
Lit les lignes d’un fichier. |
ReadLines(String, Encoding)
- Source:
- File.cs
- Source:
- File.cs
- Source:
- File.cs
Lit les lignes d’un fichier qui a un encodage spécifié.
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)
Paramètres
- path
- String
Fichier à lire.
- encoding
- Encoding
Encodage appliqué au contenu du fichier.
Retours
Toutes les lignes du fichier, ou les lignes qui sont le résultat d’une requête.
Exceptions
.NET Framework et les versions .NET Core antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides tels que définis par la méthode GetInvalidPathChars().
path
est null
.
path
n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).
Le fichier spécifié par path
est introuvable.
Une erreur d’E/S s’est produite lors de l’ouverture du fichier.
path
dépasse la longueur maximale définie par le système.
L’appelant n’a pas l’autorisation requise.
path
spécifie un fichier en lecture seule.
-ou-
Cette opération n’est pas prise en charge sur la plateforme actuelle.
-ou-
path
est un répertoire.
-ou-
L’appelant n’a pas l’autorisation requise.
Remarques
Utilisez cette méthode pour spécifier un encodage à utiliser pour lire le fichier.
Les méthodes ReadLines et ReadAllLines diffèrent comme suit : lorsque vous utilisez ReadLines, vous pouvez commencer à énumérer la collection de chaînes avant que la collection entière soit retournée. Lorsque vous utilisez ReadAllLines, vous devez attendre que l’ensemble du tableau de chaînes soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec des fichiers très volumineux, ReadLines peut être plus efficace.
Vous pouvez utiliser la méthode ReadLines pour effectuer les opérations suivantes :
Effectuez requêtes LINQ to Objects sur un fichier pour obtenir un ensemble filtré de ses lignes.
Écrivez la collection retournée de lignes dans un fichier avec la méthode File.WriteAllLines(String, IEnumerable<String>, Encoding), ou ajoutez-les à un fichier existant avec la méthode File.AppendAllLines(String, IEnumerable<String>, Encoding).
Créez une instance remplie immédiatement d’une collection qui accepte une collection IEnumerable<T> de chaînes pour son constructeur, telle qu’un IList<T> ou un Queue<T>.
S’applique à
ReadLines(String)
- Source:
- File.cs
- Source:
- File.cs
- Source:
- File.cs
Lit les lignes d’un fichier.
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)
Paramètres
- path
- String
Fichier à lire.
Retours
Toutes les lignes du fichier, ou les lignes qui sont le résultat d’une requête.
Exceptions
.NET Framework et les versions .NET Core antérieures à 2.1 : path
est une chaîne de longueur nulle, contient uniquement un espace blanc ou contient un ou plusieurs caractères non valides définis par la méthode GetInvalidPathChars().
path
est null
.
path
n’est pas valide (par exemple, il se trouve sur un lecteur non mappé).
Le fichier spécifié par path
est introuvable.
Une erreur d’E/S s’est produite lors de l’ouverture du fichier.
path
dépasse la longueur maximale définie par le système.
L’appelant n’a pas l’autorisation requise.
path
spécifie un fichier en lecture seule.
-ou-
Cette opération n’est pas prise en charge sur la plateforme actuelle.
-ou-
path
est un répertoire.
-ou-
L’appelant n’a pas l’autorisation requise.
Exemples
L’exemple suivant lit les lignes d’un fichier pour rechercher des lignes qui contiennent des chaînes spécifiées.
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
L’exemple suivant utilise la méthode ReadLines dans une requête LINQ qui énumère tous les répertoires des fichiers qui ont une extension .txt, lit chaque ligne du fichier et affiche la ligne si elle contient la chaîne « 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
Remarques
Les méthodes ReadLines et ReadAllLines diffèrent comme suit : Lorsque vous utilisez ReadLines, vous pouvez commencer à énumérer la collection de chaînes avant que l’ensemble de la collection soit retourné ; lorsque vous utilisez ReadAllLines, vous devez attendre que l’ensemble du tableau de chaînes soit retourné avant de pouvoir accéder au tableau. Par conséquent, lorsque vous travaillez avec des fichiers très volumineux, ReadLines peut être plus efficace.
Vous pouvez utiliser la méthode ReadLines pour effectuer les opérations suivantes :
Effectuez requêtes LINQ to Objects sur un fichier pour obtenir un ensemble filtré de ses lignes.
Écrivez la collection retournée de lignes dans un fichier avec la méthode File.WriteAllLines(String, IEnumerable<String>), ou ajoutez-les à un fichier existant avec la méthode File.AppendAllLines(String, IEnumerable<String>).
Créez une instance remplie immédiatement d’une collection qui accepte une collection IEnumerable<T> de chaînes pour son constructeur, telle qu’un IList<T> ou un Queue<T>.
Cette méthode utilise UTF8 pour la valeur d’encodage.