DirectoryInfo.GetFiles メソッド

定義

現在のディレクトリからファイル一覧を返します。Returns a file list from the current directory.

オーバーロード

GetFiles(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する現在のディレクトリからファイル一覧を返します。Returns a file list from the current directory matching the specified search pattern and enumeration options.

GetFiles(String, SearchOption)

現在のディレクトリから、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル一覧を返します。Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

GetFiles()

現在のディレクトリからファイル一覧を返します。Returns a file list from the current directory.

GetFiles(String)

現在のディレクトリから、指定した検索パターンに一致するファイル一覧を返します。Returns a file list from the current directory matching the given search pattern.

GetFiles(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する現在のディレクトリからファイル一覧を返します。Returns a file list from the current directory matching the specified search pattern and enumeration options.

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

ファイル名と照合する検索文字列。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.

enumerationOptions
EnumerationOptions

使用する検索と列挙の構成を記述するオブジェクト。An object that describes the search and enumeration configuration to use.

戻り値

FileInfo[]

searchPatternenumerationOptions に一致する、厳密に型指定された FileInfo オブジェクトの配列。An array of strongly typed FileInfo objects that match searchPattern and enumerationOptions.

例外

searchPattern に、 GetInvalidPathChars() メソッドで定義された 1 つ以上の使用できない文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnull です。searchPattern is null.

パスが正しくありません (たとえば、マップされていないドライブにあるなど)。The path is invalid (for example, it is on an unmapped drive).

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

注釈

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

EnumerateFiles メソッドと GetFiles メソッドは次のように異なります。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.

DirectoryInfoにファイルが存在しない場合、このメソッドは空の配列を返します。If there are no files in the DirectoryInfo, this method returns an empty array.

searchPattern パラメーターでは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in the searchPattern parameter.

ワイルドカード文字Wildcard character 説明Description
* 0個以上の文字。Zero or more characters.
?? 0個または1個の文字。Exactly zero or one character.

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、Sort メソッドを使用します。The order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

ワイルドカードを使用できます。Wildcards are permitted. たとえば、searchPattern 文字列 "* .txt" は、拡張子が "txt" のすべてのファイル名を検索します。For example, the searchPattern string "*.txt" searches for all file names having an extension of "txt". searchPattern 文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。The searchPattern string "s*" searches for all file names beginning with the letter "s". ファイルがない場合、または DirectoryInfo内の searchPattern 文字列に一致するファイルがない場合、このメソッドは空の配列を返します。If there are no files, or no files that match the searchPattern string in the DirectoryInfo, this method returns an empty array.

注意

searchPattern でアスタリスクのワイルドカード文字 ("* .txt" など) を使用する場合、一致の動作は、指定されたファイル拡張子の長さによって異なります。When using the asterisk wildcard character in a searchPattern (for example, "*.txt"), the matching behavior varies depending on the length of the specified file extension. ファイル拡張子が3文字の searchPattern は、3文字以上の拡張子を持つファイルを返します。最初の3文字は、searchPatternで指定されたファイル拡張子と一致します。A searchPattern with a file extension of exactly three characters returns files with an extension of three or more characters, where the first three characters match the file extension specified in the searchPattern. ファイル拡張子が1、2、または3文字を超える searchPattern は、searchPatternで指定されたファイル拡張子と完全に一致する拡張子を持つファイルのみを返します。A searchPattern with a file extension of one, two, or more than three characters returns only files with extensions of exactly that length that match the file extension specified in the searchPattern. 疑問符のワイルドカード文字を使用する場合、このメソッドは、指定されたファイル拡張子に一致するファイルだけを返します。When using the question mark wildcard character, this method returns only files that match the specified file extension. たとえば、ディレクトリに2つのファイルがある場合、"file1" と "file1" は、"file?" という検索パターンになります。txt "は最初のファイルのみを返し、" file*.txt "の検索パターンは両方のファイルを返します。For example, given two files in a directory, "file1.txt" and "file1.txtother", a search pattern of "file?.txt" returns only the first file, while a search pattern of "file*.txt" returns both files.

注意

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を含むファイル名をチェックするため、"* 1*.txt" に類似した検索パターンでは、予期しないファイル名が返されることがあります。Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. たとえば、"*1*.txt" という検索パターンを使用すると、8.3 ファイル名の形式が "longfilename ~ 1 .txt" になるため、"longfilename. .txt" が返されます。For example, using a search pattern of "*1*.txt" will return "longfilename.txt" because the equivalent 8.3 file name format would be "longf~1.txt".

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

GetFiles(String, SearchOption)

現在のディレクトリから、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル一覧を返します。Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

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

ファイル名と照合する検索文字列。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

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

戻り値

FileInfo[]

FileInfo 型の配列です。An array of type FileInfo.

例外

searchPattern に、 GetInvalidPathChars() メソッドで定義された 1 つ以上の使用できない文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnull です。searchPattern is null.

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

パスが正しくありません (たとえば、マップされていないドライブにあるなど)。The path is invalid (for example, it is on an unmapped drive).

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

次の例では、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示します。The following example shows how to get a list of files from 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:\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 . . .

注釈

EnumerateFiles メソッドと GetFiles メソッドは次のように異なります。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.

DirectoryInfoにファイルが存在しない場合、このメソッドは空の配列を返します。If there are no files in the DirectoryInfo, this method returns an empty array.

searchPatternでは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード文字Wildcard character 説明Description
* (アスタリスク)* (asterisk) 0個以上の文字。Zero or more characters.
?? (疑問符)(question mark) 0個または1個の文字。Exactly zero or one character.

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、Sort メソッドを使用します。The order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

ワイルドカードを使用できます。Wildcards are permitted. たとえば、searchPattern 文字列 "* .txt" は、拡張子が "txt" のすべてのファイル名を検索します。For example, the searchPattern string "*.txt" searches for all file names having an extension of "txt". searchPattern 文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。The searchPattern string "s*" searches for all file names beginning with the letter "s". ファイルがない場合、または DirectoryInfo内の searchPattern 文字列に一致するファイルがない場合、このメソッドは空の配列を返します。If there are no files, or no files that match the searchPattern string in the DirectoryInfo, this method returns an empty array.

注意

searchPattern でアスタリスクのワイルドカード文字 ("* .txt" など) を使用する場合、一致の動作は、指定されたファイル拡張子の長さによって異なります。When using the asterisk wildcard character in a searchPattern (for example, "*.txt"), the matching behavior varies depending on the length of the specified file extension. ファイル拡張子が3文字の searchPattern は、3文字以上の拡張子を持つファイルを返します。最初の3文字は、searchPatternで指定されたファイル拡張子と一致します。A searchPattern with a file extension of exactly three characters returns files with an extension of three or more characters, where the first three characters match the file extension specified in the searchPattern. ファイル拡張子が1、2、または3文字を超える searchPattern は、searchPatternで指定されたファイル拡張子と完全に一致する拡張子を持つファイルのみを返します。A searchPattern with a file extension of one, two, or more than three characters returns only files with extensions of exactly that length that match the file extension specified in the searchPattern. 疑問符のワイルドカード文字を使用する場合、このメソッドは、指定されたファイル拡張子に一致するファイルだけを返します。When using the question mark wildcard character, this method returns only files that match the specified file extension. たとえば、ディレクトリに2つのファイルがある場合、"file1" と "file1" は、"file?" という検索パターンになります。txt "は最初のファイルのみを返し、" file*.txt "の検索パターンは両方のファイルを返します。For example, given two files in a directory, "file1.txt" and "file1.txtother", a search pattern of "file?.txt" returns only the first file, while a search pattern of "file*.txt" returns both files.

次の一覧は、searchPattern パラメーターのさまざまな長さの動作を示しています。The following list shows the behavior of different lengths for the searchPattern parameter:

  • "* abc" は、拡張子が abc、abcd、abcde...z、abcdef などのファイルを返します。"*.abc" returns files having an extension of.abc,.abcd,.abcde,.abcdef, and so on.

  • "* abcd" は、拡張子が abcd のファイルのみを返します。"*.abcd" returns only files having an extension of.abcd.

  • "* abcde...z" は拡張子が abcde...z のファイルのみを返します。"*.abcde" returns only files having an extension of.abcde.

  • "* abcdef" は拡張子が abcdef のファイルのみを返します。"*.abcdef" returns only files having an extension of.abcdef.

注意

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を含むファイル名をチェックするため、"* 1*.txt" に類似した検索パターンでは、予期しないファイル名が返されることがあります。Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. たとえば、"*1*.txt" という検索パターンを使用すると、8.3 ファイル名の形式が "longfilename ~ 1 .txt" になるため、"longfilename. .txt" が返されます。For example, using a search pattern of "*1*.txt" will return "longfilename.txt" because the equivalent 8.3 file name format would be "longf~1.txt".

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

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

こちらもご覧ください

GetFiles()

現在のディレクトリからファイル一覧を返します。Returns a file list from the current directory.

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 型の配列です。An array of type FileInfo.

例外

マップされていないドライブにあるなど、パスが正しくありません。The path is invalid, such as being on an unmapped drive.

次の例では、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示します。The following example shows how to get a list of files from 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:\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 . . .

注釈

EnumerateFiles メソッドと GetFiles メソッドは次のように異なります。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.

DirectoryInfoにファイルが存在しない場合、このメソッドは空の配列を返します。If there are no files in the DirectoryInfo, this method returns an empty array.

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、Sort メソッドを使用します。The order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

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

こちらもご覧ください

GetFiles(String)

現在のディレクトリから、指定した検索パターンに一致するファイル一覧を返します。Returns a file list from the current directory matching the given search pattern.

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

ファイル名と照合する検索文字列。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.

戻り値

FileInfo[]

FileInfo 型の配列です。An array of type FileInfo.

例外

searchPattern に、 GetInvalidPathChars() メソッドで定義された 1 つ以上の使用できない文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnull です。searchPattern is null.

パスが正しくありません (たとえば、マップされていないドライブにあるなど)。The path is invalid (for example, it is on an unmapped drive).

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

次の例では、さまざまな検索オプションを使用してディレクトリからファイルの一覧を取得する方法を示します。The following example shows how to get a list of files from 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:\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 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".

EnumerateFiles メソッドと GetFiles メソッドは次のように異なります。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.

DirectoryInfoにファイルが存在しない場合、このメソッドは空の配列を返します。If there are no files in the DirectoryInfo, this method returns an empty array.

searchPattern パラメーターでは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in the searchPattern parameter.

ワイルドカード文字Wildcard character 説明Description
* 0個以上の文字。Zero or more characters.
?? 0個または1個の文字。Exactly zero or one character.

返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、Sort メソッドを使用します。The order of the returned file names is not guaranteed; use the Sort method if a specific sort order is required.

ワイルドカードを使用できます。Wildcards are permitted. たとえば、searchPattern 文字列 "* .txt" は、拡張子が "txt" のすべてのファイル名を検索します。For example, the searchPattern string "*.txt" searches for all file names having an extension of "txt". searchPattern 文字列 "s*" は、文字 "s" で始まるすべてのファイル名を検索します。The searchPattern string "s*" searches for all file names beginning with the letter "s". ファイルがない場合、または DirectoryInfo内の searchPattern 文字列に一致するファイルがない場合、このメソッドは空の配列を返します。If there are no files, or no files that match the searchPattern string in the DirectoryInfo, this method returns an empty array.

注意

searchPattern でアスタリスクのワイルドカード文字 ("* .txt" など) を使用する場合、一致の動作は、指定されたファイル拡張子の長さによって異なります。When using the asterisk wildcard character in a searchPattern (for example, "*.txt"), the matching behavior varies depending on the length of the specified file extension. ファイル拡張子が3文字の searchPattern は、3文字以上の拡張子を持つファイルを返します。最初の3文字は、searchPatternで指定されたファイル拡張子と一致します。A searchPattern with a file extension of exactly three characters returns files with an extension of three or more characters, where the first three characters match the file extension specified in the searchPattern. ファイル拡張子が1、2、または3文字を超える searchPattern は、searchPatternで指定されたファイル拡張子と完全に一致する拡張子を持つファイルのみを返します。A searchPattern with a file extension of one, two, or more than three characters returns only files with extensions of exactly that length that match the file extension specified in the searchPattern. 疑問符のワイルドカード文字を使用する場合、このメソッドは、指定されたファイル拡張子に一致するファイルだけを返します。When using the question mark wildcard character, this method returns only files that match the specified file extension. たとえば、ディレクトリに2つのファイルがある場合、"file1" と "file1" は、"file?" という検索パターンになります。txt "は最初のファイルのみを返し、" file*.txt "の検索パターンは両方のファイルを返します。For example, given two files in a directory, "file1.txt" and "file1.txtother", a search pattern of "file?.txt" returns only the first file, while a search pattern of "file*.txt" returns both files.

注意

このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を含むファイル名をチェックするため、"* 1*.txt" に類似した検索パターンでは、予期しないファイル名が返されることがあります。Because this method checks against file names with both the 8.3 file name format and the long file name format, a search pattern similar to "*1*.txt" may return unexpected file names. たとえば、"*1*.txt" という検索パターンを使用すると、8.3 ファイル名の形式が "longfilename ~ 1 .txt" になるため、"longfilename. .txt" が返されます。For example, using a search pattern of "*1*.txt" will return "longfilename.txt" because the equivalent 8.3 file name format would be "longf~1.txt".

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

こちらもご覧ください

適用対象