File.ReadLines メソッド

定義

ファイルの行を読み取ります。

オーバーロード

ReadLines(String)

ファイルの行を読み取ります。

ReadLines(String, Encoding)

指定された方法でエンコーディングされたファイルの行を読み取ります。

ReadLines(String)

ファイルの行を読み取ります。

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)

パラメーター

path
String

読み取るファイル。

戻り値

IEnumerable<String>

ファイルのすべての行、またはクエリの結果の行。

例外

.NET Frameworkおよび .NET Core 2.1 より前のバージョン: path 長さ 0 の文字列、空白のみを含む、またはメソッドによって定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。

pathnullです。

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。

path によって指定されたファイルが見つかりませんでした。

ファイルを開くときに、I/O エラーが発生しました。

path がシステムで定義されている最大長を超えています。

呼び出し元に、必要なアクセス許可がありません。

path は読み取り専用のファイルを指定します。

  • または - この操作は、現在のプラットフォームではサポートされていません。

  • または - path はディレクトリです。

  • または - 呼び出し元に、必要なアクセス許可がありません。

次の例では、ファイルの行を読み取って、指定した文字列を含む行を検索します。

foreach (string line in File.ReadLines(@"d:\data\episodes.txt"))
{
    if (line.Contains("episode") & line.Contains("2006"))
    {
        Console.WriteLine(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

次の例では、LINQ クエリのメソッドを使用 ReadLines して、.txt拡張子を持つファイルのすべてのディレクトリを列挙し、ファイルの各行を読み取り、文字列 "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);
        }
    }
}
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

注釈

メソッドとReadAllLinesメソッドはReadLines次のように異なります。使用ReadLinesすると、コレクション全体が返される前に文字列のコレクションの列挙を開始できます。使用ReadAllLinesする場合は、文字列の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 したがって、非常に大きなファイルを操作する場合は、 ReadLines より効率的になる可能性があります。

このメソッドを ReadLines 使用して、次の操作を行うことができます。

このメソッドはエンコード値に使用 UTF8 します。

適用対象

ReadLines(String, Encoding)

指定された方法でエンコーディングされたファイルの行を読み取ります。

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)

パラメーター

path
String

読み取るファイル。

encoding
Encoding

ファイルの内容に適用されるエンコーディング。

戻り値

IEnumerable<String>

ファイルのすべての行、またはクエリの結果の行。

例外

.NET Frameworkおよび .NET Core バージョン 2.1 より前: path 長さ 0 の文字列、空白のみを含む、またはメソッドで定義されているGetInvalidPathChars()無効な文字が 1 つ以上含まれています。

pathnullです。

path が有効ではありません (たとえば、マップされていないドライブにあるなど)。

path によって指定されたファイルが見つかりませんでした。

ファイルを開くときに、I/O エラーが発生しました。

path がシステムで定義されている最大長を超えています。

呼び出し元に、必要なアクセス許可がありません。

path は読み取り専用のファイルを指定します。

  • または - この操作は、現在のプラットフォームではサポートされていません。

  • または - path はディレクトリです。

  • または - 呼び出し元に、必要なアクセス許可がありません。

注釈

このメソッドを使用して、ファイルの読み取りを使用するエンコードを指定します。

メソッドとReadAllLinesメソッドはReadLines次のように異なります。使用ReadLinesすると、コレクション全体が返される前に、文字列のコレクションの列挙を開始できます。 使用 ReadAllLinesする場合は、配列にアクセスする前に、文字列の配列全体が返されるのを待つ必要があります。 したがって、非常に大きなファイルを操作する場合は、 ReadLines より効率的になる可能性があります。

このメソッドを ReadLines 使用して、次の操作を行うことができます。

適用対象