DirectoryInfo.EnumerateFiles 메서드

정의

현재 디렉터리에 있는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information in the current directory.

오버로드

EnumerateFiles()

현재 디렉터리에 있는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

검색 패턴과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information that matches a search pattern.

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

지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

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 쿼리를 사용 하 여 값을 확인 하 여 2009 전에 생성 된 모든 파일의 이름을 반환 하는 CreationTimeUtc 속성입니다.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.txt, test1.txt, test2.txt, test3.txt, 및 SubFile.txt 라는 파일에 있는 하위 디렉터리를 명명 된 파일이 있는 디렉터리를 가정 합니다.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)

검색 패턴과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.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

파일 이름과 일치하는지 비교할 검색 문자열입니다.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.txt, test1.txt, test2.txt, test3.txt, 및 SubFile.txt 라는 파일에 있는 하위 디렉터리를 명명 된 파일이 있는 디렉터리를 가정 합니다.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 개 이상의 문자입니다.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*"의 모든 이름 검색 path "s"로 시작 합니다.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)

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
enumerationOptions
EnumerationOptions

반환

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

파일 이름과 일치하는지 비교할 검색 문자열입니다.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

검색 작업에 현재 디렉터리만 포함할지 아니면 모든 하위 디렉터리를 포함할지를 지정하는 열거형 값 중 하나입니다.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.txt, test1.txt, test2.txt, test3.txt, 및 SubFile.txt 라는 파일에 있는 하위 디렉터리를 명명 된 파일이 있는 디렉터리를 가정 합니다.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 개 이상의 문자입니다.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*"의 모든 이름 검색 path "s"로 시작 합니다.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.

적용 대상