DirectoryInfo.EnumerateFiles DirectoryInfo.EnumerateFiles DirectoryInfo.EnumerateFiles DirectoryInfo.EnumerateFiles Method

定義

現在のディレクトリに存在するファイル情報の列挙可能なコレクションを返します。Returns an enumerable collection of file information in the current directory.

オーバーロード

EnumerateFiles() EnumerateFiles() EnumerateFiles() EnumerateFiles()

現在のディレクトリに存在するファイル情報の列挙可能なコレクションを返します。Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

検索パターンに一致する列挙可能なファイル情報のコレクションを返します。Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions) EnumerateFiles(String, EnumerationOptions) EnumerateFiles(String, EnumerationOptions)
EnumerateFiles(String, SearchOption) EnumerateFiles(String, SearchOption) EnumerateFiles(String, SearchOption)

指定された検索パターンと、サブディレクトリを検索するかどうかを指定するオプションの設定に一致する列挙可能なファイル情報のコレクションを返します。Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFiles() EnumerateFiles() EnumerateFiles() EnumerateFiles()

現在のディレクトリに存在するファイル情報の列挙可能なコレクションを返します。Returns an enumerable collection of file information in the current directory.

public:
 System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles();
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles ();
member this.EnumerateFiles : unit -> seq<System.IO.FileInfo>
Public Function EnumerateFiles () As IEnumerable(Of FileInfo)

戻り値

現在のディレクトリ内の列挙可能なファイルのコレクション。An enumerable collection of the files in the current directory.

例外

DirectoryInfo オブジェクトでカプセル化されたパスが無効です (割り当てられていないドライブであるなど)。The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、指定されたディレクトリにあるファイルを列挙し、LINQ クエリを使用して、 CreationTimeUtcプロパティの値を確認することで、2009より前に作成されたすべてのファイルの名前を返します。The following example enumerates the files under a specified directory and uses a LINQ query to return the names of all files that were created before 2009 by checking the value of the CreationTimeUtc property.

ファイル名のみが必要な場合は、静的Directoryクラスを使用してパフォーマンスを向上させます。If you only need the names of the files, use the static Directory class for better performance. 例については、 Directory.EnumerateFiles(String)メソッドを参照してください。For an example, see the Directory.EnumerateFiles(String) method.

// Create a DirectoryInfo of the directory of the files to enumerate.
DirectoryInfo DirInfo = new DirectoryInfo(@"\\archives1\library\");

DateTime StartOf2009 = new DateTime(2009, 01, 01);

// LINQ query for all files created before 2009.
var files = from f in DirInfo.EnumerateFiles()
           where f.CreationTimeUtc < StartOf2009
           select f;

// Show results.
foreach (var f in files)
{
    Console.WriteLine("{0}", f.Name);
}
' Create a DirectoryInfo of the directory of the files to enumerate.
Dim DirInfo As New DirectoryInfo("\\archives1\library\")

Dim StartOf2009 As New DateTime(2009, 1, 1)

' LINQ query for all files created before 2009.
Dim files = From f In DirInfo.EnumerateFiles()
            Where f.CreationTimeUtc < StartOf2009

' Show results.
For Each f As FileInfo In files
    Console.WriteLine("{0}", f.Name)
Next

次の例では、別の検索オプションを使用してディレクトリ内のファイルを列挙する方法を示します。The following example shows how to enumerate files in a directory by using different search options. この例では、log1.txt、log2、test1、test2、test3 という名前のファイルを含むディレクトリと、サブファイルという名前のファイルがあるサブディレクトリを前提としています。The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/* 
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.EnumerateFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.EnumerateFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.EnumerateFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

注釈

メソッドEnumerateFilesGetFilesメソッドは次のように異なります。The EnumerateFiles and GetFiles methods differ as follows:

  • を使用EnumerateFilesすると、コレクション全体が返される前FileInfoに、オブジェクトのコレクションの列挙を開始できます。When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • を使用GetFilesするときは、配列にアクセスする前にFileInfo 、オブジェクトの配列全体が返されるまで待つ必要があります。When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

そのため、多くのファイルとディレクトリを操作する場合EnumerateFilesは、の方が効率的です。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

このメソッドは、次FileInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileInfo properties:

返されたコレクションはキャッシュされません。コレクションのGetEnumeratorメソッドを呼び出すたびに、新しい列挙が開始されます。The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

検索パターンに一致する列挙可能なファイル情報のコレクションを返します。Returns an enumerable collection of file information that matches a search pattern.

public:
 System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern);
member this.EnumerateFiles : string -> seq<System.IO.FileInfo>
Public Function EnumerateFiles (searchPattern As String) As IEnumerable(Of FileInfo)

パラメーター

searchPattern
String String String String

ファイル名と照合する検索文字列。The search string to match against the names of files. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

戻り値

searchPattern に一致する列挙可能なファイルのコレクション。An enumerable collection of files that matches searchPattern.

例外

searchPatternnullです。searchPattern is null.

DirectoryInfo オブジェクトでカプセル化されたパスが無効です (割り当てられていないドライブであるなど)。The path encapsulated in the DirectoryInfo object is invalid, (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、別の検索オプションを使用してディレクトリ内のファイルを列挙する方法を示します。The following example shows how to enumerate files in a directory by using different search options. この例では、log1.txt、log2、test1、test2、test3 という名前のファイルを含むディレクトリと、サブファイルという名前のファイルがあるサブディレクトリを前提としています。The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/* 
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.EnumerateFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.EnumerateFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.EnumerateFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

注釈

searchPatternには、リテラル文字とワイルドカード文字の組み合わせを使用できますが、正規表現はサポートされていません。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

メソッドEnumerateFilesGetFilesメソッドは次のように異なります。The EnumerateFiles and GetFiles methods differ as follows:

  • を使用EnumerateFilesすると、コレクション全体が返される前FileInfoに、オブジェクトのコレクションの列挙を開始できます。When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • を使用GetFilesするときは、配列にアクセスする前にFileInfo 、オブジェクトの配列全体が返されるまで待つ必要があります。When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

そのため、多くのファイルとディレクトリを操作する場合EnumerateFilesは、の方が効率的です。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

このメソッドは、次FileInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileInfo properties:

返されたコレクションはキャッシュされません。コレクションのGetEnumeratorメソッドを呼び出すたびに、新しい列挙が開始されます。The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

EnumerateFiles(String, EnumerationOptions) EnumerateFiles(String, EnumerationOptions) EnumerateFiles(String, EnumerationOptions)

public:
 System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateFiles : string * System.IO.EnumerationOptions -> seq<System.IO.FileInfo>

パラメーター

searchPattern
String String String String

戻り値

EnumerateFiles(String, SearchOption) EnumerateFiles(String, SearchOption) EnumerateFiles(String, SearchOption)

指定された検索パターンと、サブディレクトリを検索するかどうかを指定するオプションの設定に一致する列挙可能なファイル情報のコレクションを返します。Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

public:
 System::Collections::Generic::IEnumerable<System::IO::FileInfo ^> ^ EnumerateFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.FileInfo> EnumerateFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateFiles : string * System.IO.SearchOption -> seq<System.IO.FileInfo>

パラメーター

searchPattern
String String String String

ファイル名と照合する検索文字列。The search string to match against the names of files. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption SearchOption SearchOption SearchOption

検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories. 既定値は TopDirectoryOnly です。The default value is TopDirectoryOnly.

戻り値

searchPatternsearchOption に一致する列挙可能なファイルのコレクション。An enumerable collection of files that matches searchPattern and searchOption.

例外

searchPatternnull です。searchPattern is null.

searchOption は有効な SearchOption 値ではありません。searchOption is not a valid SearchOption value.

DirectoryInfo オブジェクトでカプセル化されたパスが無効です (割り当てられていないドライブであるなど)。The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、別の検索オプションを使用してディレクトリ内のファイルを列挙する方法を示します。The following example shows how to enumerate files in a directory by using different search options. この例では、log1.txt、log2、test1、test2、test3 という名前のファイルを含むディレクトリと、サブファイルという名前のファイルがあるサブディレクトリを前提としています。The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named SubFile.txt.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.EnumerateFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.EnumerateFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.EnumerateFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/* 
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/

Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.EnumerateFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.EnumerateFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.EnumerateFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

注釈

searchPatternには、リテラル文字とワイルドカード文字の組み合わせを使用できますが、正規表現はサポートされていません。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

メソッドEnumerateFilesGetFilesメソッドは次のように異なります。The EnumerateFiles and GetFiles methods differ as follows:

  • を使用EnumerateFilesすると、コレクション全体が返される前FileInfoに、オブジェクトのコレクションの列挙を開始できます。When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • を使用GetFilesするときは、配列にアクセスする前にFileInfo 、オブジェクトの配列全体が返されるまで待つ必要があります。When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

そのため、多くのファイルとディレクトリを操作する場合EnumerateFilesは、の方が効率的です。Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

このメソッドは、次FileInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following FileInfo properties:

返されたコレクションはキャッシュされません。コレクションのGetEnumeratorメソッドを呼び出すたびに、新しい列挙が開始されます。The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

適用対象