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 メソッドによって定義された無効な文字が GetInvalidPathChars() 1 つ以上含まれています。

searchPatternnullです。

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

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

注釈

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

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

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

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

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

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

そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles より効率的になります。

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

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

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

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

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

注意

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

注意

このメソッドは、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 メソッドによって定義された無効な文字が 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 . . .

*/
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" のすべてのファイル名を検索します。 文字列 "s" は searchPattern 、文字 "s*" で始まるすべてのファイル名を検索します。 ファイルがない場合、または文字列にDirectoryInfo一致searchPatternするファイルがない場合、このメソッドは空の配列を返します。

注意

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

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

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

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

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

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

注意

このメソッドは、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 . . .

*/
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 メソッドによって定義された無効な文字が 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 . . .

*/
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" で終わるすべての名前を検索します。 文字列 "s" は searchPattern 、文字 "s*" で path 始まるすべての名前を検索します。

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

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

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

そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles より効率的になります。

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

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

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

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

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

注意

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

注意

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

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

こちらもご覧ください

適用対象