File.ReadLines Méthode

Définition

Lit les lignes d'un fichier.

Surcharges

ReadLines(String)

Lit les lignes d'un fichier.

ReadLines(String, Encoding)

Lit les lignes d'un fichier qui a un encodage spécifié.

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 .NET Core versions antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides définis par la GetInvalidPathChars() méthode.

path a la valeur null.

path n’est pas valide (par exemple, il est 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 qui est 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 les 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 ReadLines méthode dans une requête LINQ qui énumère tous les répertoires pour les 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 ReadLines méthodes 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 ReadLines méthode pour effectuer les opérations suivantes :

Cette méthode utilise UTF8 pour la valeur d’encodage.

S’applique à

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 .NET Core versions antérieures à 2.1 : path est une chaîne de longueur nulle, contient uniquement des espaces blancs ou contient un ou plusieurs caractères non valides tels que définis par la GetInvalidPathChars() méthode.

path a la valeur null.

path n’est pas valide (par exemple, il est 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 qui est 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 ReadLines méthodes 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 ne 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 ReadLines méthode pour effectuer les opérations suivantes :

S’applique à