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

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

戻り値

FileInfo[]

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

例外

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

searchPatternnullです。

パスが正しくありません (たとえば、マップされていないドライブにあるなど)。

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

注釈

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

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

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

メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。

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

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

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

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

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

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

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

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

Note

searchPattern アスタリスクワイルドカード文字 ("*.txt" など) を使用する場合、一致する動作は、指定されたファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の は searchPattern 、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 で searchPattern指定されたファイル拡張子と一致します。 searchPatternファイル拡張子が 1 文字、2 文字、または 3 文字を超える は、 で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[]

FileInfo 型の配列。

例外

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

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 . . .

注釈

メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。

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

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

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

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

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

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

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

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

Note

searchPattern アスタリスクワイルドカード文字 ("*.txt" など) を使用する場合、一致する動作は、指定されたファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の は searchPattern 、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 で searchPattern指定されたファイル拡張子と一致します。 searchPatternファイル拡張子が 1 文字、2 文字、または 3 文字を超える は、 で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[]

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 . . .

注釈

メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。

  • を使用 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[]

FileInfo 型の配列。

例外

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

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始まるすべての名前を検索します。

メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。

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

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

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

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

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

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

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

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

Note

でアスタリスク ワイルドカード文字 searchPattern ("*.txt" など) を使用する場合、一致動作は、指定したファイル拡張子の長さによって異なります。 ファイル拡張子が 3 文字の は searchPattern 、拡張子が 3 文字以上のファイルを返します。最初の 3 文字は、 で searchPattern指定されたファイル拡張子と一致します。 searchPatternファイル拡張子が 1 文字、2 文字、または 3 文字を超える は、 で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 のプロパティの値を事前に設定します。

こちらもご覧ください

適用対象