DirectoryInfo.GetFiles メソッド

定義

現在のディレクトリからファイルリストを返します。

オーバーロード

名前 説明
GetFiles(String, EnumerationOptions)

現在のディレクトリから、指定した検索パターンと列挙オプションに一致するファイル リストを返します。

GetFiles(String, SearchOption)

指定された検索パターンに一致し、値を使用してサブディレクトリを検索するかどうかを判断する現在のディレクトリからファイル リストを返します。

GetFiles()

現在のディレクトリからファイルリストを返します。

GetFiles(String)

指定された検索パターンに一致する現在のディレクトリからファイル リストを返します。

GetFiles(String, EnumerationOptions)

現在のディレクトリから、指定した検索パターンと列挙オプションに一致するファイル リストを返します。

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFiles : string * System.IO.EnumerationOptions -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As FileInfo()

パラメーター

searchPattern
String

ファイル名と照合する検索文字列。 このパラメーターには、有効なリテラル パスとワイルドカード (* および ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

enumerationOptions
EnumerationOptions

使用する検索と列挙の構成を記述するオブジェクト。

返品

searchPatternenumerationOptionsに一致する厳密に型指定されたFileInfo オブジェクトの配列。

例外

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

searchPatternnullです。

パスが無効です (たとえば、マップされていないドライブ上にあります)。

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

注釈

searchPattern にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 searchPatternでは、次のワイルドカード指定子を使用できます。

ワイルドカード指定子 一致
* (アスタリスク) その位置の 0 個以上の文字。
? (疑問符) その位置の 0 文字または 1 文字。

ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 searchPattern文字列 "s*" は、文字 "s" で始まるpath内のすべての名前を検索します。

EnumerateFilesGetFilesの方法は次のように異なります。

  • EnumerateFilesを使用すると、コレクション全体が返される前に、FileInfo オブジェクトのコレクションの列挙を開始できます。

  • GetFilesを使用する場合は、配列にアクセスする前に、FileInfo オブジェクトの配列全体が返されるのを待つ必要があります。

そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。

DirectoryInfoにファイルがない場合、このメソッドは空の配列を返します。

searchPattern パラメーターでは、次のワイルドカード指定子を使用できます。

ワイルドカード文字 Description
* 0 文字以上の文字。
? 正確に 0 文字または 1 文字。

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 Sort メソッドを使用します。

ワイルドカードを使用できます。 たとえば、 searchPattern 文字列 "*.txt" は、拡張子が "txt" のすべてのファイル名を検索します。 searchPattern文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。 ファイルがない場合、またはDirectoryInfo内のsearchPattern文字列に一致するファイルがない場合、このメソッドは空の配列を返します。

Note

searchPatternでアスタリスク ワイルドカード文字 ("*.txt" など) を使用する場合、一致する動作は、指定したファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の searchPattern は、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 searchPatternで指定されたファイル拡張子と一致します。 ファイル拡張子が 1 文字、2 文字、または 3 文字を超える searchPattern は、 searchPatternで指定されたファイル拡張子と正確にその長さの拡張子を持つファイルのみを返します。 疑問符ワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子に一致するファイルのみを返します。 たとえば、ディレクトリに "file1.txt" と "file1.txtother" という 2 つのファイルがある場合、"file?.txt" は最初のファイルのみを返し、検索パターン "file*.txt" は両方のファイルを返します。

Note

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される可能性があります。 たとえば、検索パターン "*1*.txt" を使用すると、同等の 8.3 ファイル名形式が "longf~1.txt" になるため、"longfilename.txt" が返されます。

このメソッドは、次の FileInfo プロパティの値を事前に設定します。

適用対象

GetFiles(String, SearchOption)

指定された検索パターンに一致し、値を使用してサブディレクトリを検索するかどうかを判断する現在のディレクトリからファイル リストを返します。

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileInfo[] GetFiles(string searchPattern, System.IO.SearchOption searchOption);
member this.GetFiles : string * System.IO.SearchOption -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, searchOption As SearchOption) As FileInfo()

パラメーター

searchPattern
String

ファイル名と照合する検索文字列。 このパラメーターには、有効なリテラル パスとワイルドカード (* および ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

searchOption
SearchOption

検索操作に現在のディレクトリのみを含めるか、すべてのサブディレクトリのみを含めるかを指定する列挙値の 1 つ。

返品

FileInfo型の配列。

例外

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

searchPatternnullです。

searchOption が有効な SearchOption 値ではありません。

パスが無効です (たとえば、マップされていないドライブ上にあります)。

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

次の例は、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示しています。 この例では、log1.txt、log2.txt、test1.txt、test2.txt、test3.txt、および SubFile.txtという名前のファイルを持つサブディレクトリという名前のファイルがあるディレクトリを想定しています。

using System;
using System.IO;

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

            Console.WriteLine();

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

            Console.WriteLine();

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

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", 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 . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{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.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

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

        Console.WriteLine()

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

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", 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の方法は次のように異なります。

  • EnumerateFilesを使用すると、コレクション全体が返される前に、FileInfo オブジェクトのコレクションの列挙を開始できます。

  • GetFilesを使用する場合は、配列にアクセスする前に、FileInfo オブジェクトの配列全体が返されるのを待つ必要があります。

そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。

DirectoryInfoにファイルがない場合、このメソッドは空の配列を返します。

searchPatternでは、次のワイルドカード指定子を使用できます。

ワイルドカード文字 Description
* (アスタリスク) 0 文字以上の文字。
? (疑問符) 正確に 0 文字または 1 文字。

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 Sort メソッドを使用します。

ワイルドカードを使用できます。 たとえば、 searchPattern 文字列 "*.txt" は、拡張子が "txt" のすべてのファイル名を検索します。 searchPattern文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。 ファイルがない場合、またはDirectoryInfo内のsearchPattern文字列に一致するファイルがない場合、このメソッドは空の配列を返します。

Note

searchPatternでアスタリスク ワイルドカード文字 ("*.txt" など) を使用する場合、一致する動作は、指定したファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の searchPattern は、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 searchPatternで指定されたファイル拡張子と一致します。 ファイル拡張子が 1 文字、2 文字、または 3 文字を超える searchPattern は、 searchPatternで指定されたファイル拡張子と正確にその長さの拡張子を持つファイルのみを返します。 疑問符ワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子に一致するファイルのみを返します。 たとえば、ディレクトリに "file1.txt" と "file1.txtother" という 2 つのファイルがある場合、"file?.txt" は最初のファイルのみを返し、検索パターン "file*.txt" は両方のファイルを返します。

次の一覧は、 searchPattern パラメーターのさまざまな長さの動作を示しています。

  • "*.abc" は、拡張子が .abc、.abcd、.abcde、.abcdef などのファイルを返します。

  • "*.abcd" は、拡張子が .abcd のファイルのみを返します。

  • "*.abcde" は、拡張子が .abcde のファイルのみを返します。

  • "*.abcdef" は、拡張子が .abcdef のファイルのみを返します。

Note

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される可能性があります。 たとえば、検索パターン "*1*.txt" を使用すると、同等の 8.3 ファイル名形式が "longf~1.txt" になるため、"longfilename.txt" が返されます。

このメソッドは、次の FileInfo プロパティの値を事前に設定します。

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

こちらもご覧ください

適用対象

GetFiles()

現在のディレクトリからファイルリストを返します。

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles();
public System.IO.FileInfo[] GetFiles();
member this.GetFiles : unit -> System.IO.FileInfo[]
Public Function GetFiles () As FileInfo()

返品

FileInfo型の配列。

例外

マップされていないドライブ上など、パスが無効です。

次の例は、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示しています。 この例では、log1.txt、log2.txt、test1.txt、test2.txt、test3.txt、および SubFile.txtという名前のファイルを持つサブディレクトリという名前のファイルがあるディレクトリを想定しています。

using System;
using System.IO;

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

            Console.WriteLine();

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

            Console.WriteLine();

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

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", 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 . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{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.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

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

        Console.WriteLine()

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

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", 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の方法は次のように異なります。

  • EnumerateFilesを使用すると、コレクション全体が返される前に、FileInfo オブジェクトのコレクションの列挙を開始できます。

  • GetFilesを使用する場合は、配列にアクセスする前に、FileInfo オブジェクトの配列全体が返されるのを待つ必要があります。

そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。

DirectoryInfoにファイルがない場合、このメソッドは空の配列を返します。

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 Sort メソッドを使用します。

このメソッドは、次の FileInfo プロパティの値を事前に設定します。

こちらもご覧ください

適用対象

GetFiles(String)

指定された検索パターンに一致する現在のディレクトリからファイル リストを返します。

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern);
public System.IO.FileInfo[] GetFiles(string searchPattern);
member this.GetFiles : string -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String) As FileInfo()

パラメーター

searchPattern
String

ファイル名と照合する検索文字列。 このパラメーターには、有効なリテラル パスとワイルドカード (* および ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

返品

FileInfo型の配列。

例外

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

searchPatternnullです。

パスが無効です (たとえば、マップされていないドライブ上にあります)。

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

次の例は、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示しています。 この例では、log1.txt、log2.txt、test1.txt、test2.txt、test3.txt、および SubFile.txtという名前のファイルを持つサブディレクトリという名前のファイルがあるディレクトリを想定しています。

using System;
using System.IO;

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

            Console.WriteLine();

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

            Console.WriteLine();

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

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", 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 . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{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.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

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

        Console.WriteLine()

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

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", 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では、次のワイルドカード指定子を使用できます。

ワイルドカード指定子 一致
* (アスタリスク) その位置の 0 個以上の文字。
? (疑問符) その位置の 0 文字または 1 文字。

ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 searchPattern文字列 "s*" は、文字 "s" で始まるpath内のすべての名前を検索します。

EnumerateFilesGetFilesの方法は次のように異なります。

  • EnumerateFilesを使用すると、コレクション全体が返される前に、FileInfo オブジェクトのコレクションの列挙を開始できます。

  • GetFilesを使用する場合は、配列にアクセスする前に、FileInfo オブジェクトの配列全体が返されるのを待つ必要があります。

そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。

DirectoryInfoにファイルがない場合、このメソッドは空の配列を返します。

searchPattern パラメーターでは、次のワイルドカード指定子を使用できます。

ワイルドカード文字 Description
* 0 文字以上の文字。
? 正確に 0 文字または 1 文字。

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 Sort メソッドを使用します。

ワイルドカードを使用できます。 たとえば、 searchPattern 文字列 "*.txt" は、拡張子が "txt" のすべてのファイル名を検索します。 searchPattern文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。 ファイルがない場合、またはDirectoryInfo内のsearchPattern文字列に一致するファイルがない場合、このメソッドは空の配列を返します。

Note

searchPatternでアスタリスク ワイルドカード文字 ("*.txt" など) を使用する場合、一致する動作は、指定したファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の searchPattern は、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 searchPatternで指定されたファイル拡張子と一致します。 ファイル拡張子が 1 文字、2 文字、または 3 文字を超える searchPattern は、 searchPatternで指定されたファイル拡張子と正確にその長さの拡張子を持つファイルのみを返します。 疑問符ワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子に一致するファイルのみを返します。 たとえば、ディレクトリに "file1.txt" と "file1.txtother" という 2 つのファイルがある場合、"file?.txt" は最初のファイルのみを返し、検索パターン "file*.txt" は両方のファイルを返します。

Note

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される可能性があります。 たとえば、検索パターン "*1*.txt" を使用すると、同等の 8.3 ファイル名形式が "longf~1.txt" になるため、"longfilename.txt" が返されます。

このメソッドは、次の FileInfo プロパティの値を事前に設定します。

こちらもご覧ください

適用対象