DirectoryInfo.GetFiles 메서드

정의

현재 디렉터리에서 파일 목록을 반환합니다.

오버로드

Name Description
GetFiles(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 현재 디렉터리에서 파일 목록을 반환합니다.

GetFiles(String, SearchOption)

지정된 검색 패턴과 일치하는 현재 디렉터리에서 파일 목록을 반환하고 값을 사용하여 하위 디렉터리를 검색할지 여부를 결정합니다.

GetFiles()

현재 디렉터리에서 파일 목록을 반환합니다.

GetFiles(String)

지정된 검색 패턴과 일치하는 현재 디렉터리에서 파일 목록을 반환합니다.

GetFiles(String, EnumerationOptions)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 패턴 및 열거형 옵션과 일치하는 현재 디렉터리에서 파일 목록을 반환합니다.

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 의 개체 배열입니다searchPattern.enumerationOptions

예외

.NET Framework 및 2.1 이전의 .NET Core 버전: searchPattern 메서드에서 정의한 GetInvalidPathChars() 하나 이상의 잘못된 문자를 포함합니다.

searchPatternnull입니다.

경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).

호출자에게 필요한 권한이 없습니다.

설명

searchPattern 는 리터럴과 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 다음 와일드카드 지정자는 .에서 searchPattern허용됩니다.

와일드카드 지정자 검색 결과
* (별표) 해당 위치에 있는 문자가 0개 이상입니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 모든 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 path 시작하는 모든 이름을 검색합니다.

EnumerateFiles 메서드와 GetFiles 메서드는 다음과 같이 다릅니다.

  • 사용할 EnumerateFiles때 전체 컬렉션이 반환되기 전에 개체 컬렉션을 FileInfo 열거할 수 있습니다.

  • 사용할 GetFiles때 배열에 액세스하기 전에 개체의 FileInfo 전체 배열이 반환될 때까지 기다려야 합니다.

따라서 많은 파일 및 디렉터리 EnumerateFiles 로 작업하는 경우 더 효율적일 수 있습니다.

파일이 없으면 이 메서드는 DirectoryInfo빈 배열을 반환합니다.

매개 변수에는 다음 와일드카드 지정자가 허용 searchPattern 됩니다.

와일드카드 문자 Description
* 문자가 0개 이상입니다.
? 정확히 0자 또는 1자입니다.

반환된 파일 이름의 순서는 보장되지 않습니다. 특정 정렬 순서가 Sort 필요한 경우 메서드를 사용합니다.

와일드카드가 허용됩니다. 예를 들어 searchPattern "*.txt" 문자열은 "txt" 확장명을 가진 모든 파일 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 시작하는 모든 파일 이름을 검색합니다. 파일이 없거나 문자열과 일치하는 searchPatternDirectoryInfo파일이 없는 경우 이 메서드는 빈 배열을 반환합니다.

메모

별표 와일드카드 문자를 searchPattern 사용하는 경우(예: "*.txt") 지정된 파일 확장명 길이에 따라 일치하는 동작이 달라집니다. 정확히 3자의 파일 확장명을 가진 A searchPattern 는 3자 이상의 확장명을 가진 파일을 반환합니다. 여기서 처음 세 문자는 지정된 파일 확장명과 searchPattern일치합니다. 파일 확장명이 1자, 2자 또는 3자 이상인 A searchPattern 는 해당 확장명이 지정된 파일 확장 searchPattern명과 정확히 일치하는 파일만 반환합니다. 물음표 와일드카드 문자를 사용하는 경우 이 메서드는 지정된 파일 확장과 일치하는 파일만 반환합니다. 예를 들어 디렉터리에 "file1.txt" 및 "file1.txtother"라는 두 개의 파일이 지정된 경우 "file?.txt"는 첫 번째 파일만 반환하고 "file*.txt"의 검색 패턴은 두 파일을 모두 반환합니다.

메모

이 메서드는 8.3 파일 이름 형식과 긴 파일 이름 형식을 모두 사용하여 파일 이름을 확인하므로 "*1*.txt"와 유사한 검색 패턴은 예기치 않은 파일 이름을 반환할 수 있습니다. 예를 들어 "*1*.txt"의 검색 패턴을 사용하면 해당 8.3 파일 이름 형식이 "longf~1.txt"이기 때문에 "longfilename.txt"가 반환됩니다.

이 메서드는 다음 FileInfo 속성의 값을 미리 채웁니다.

적용 대상

GetFiles(String, SearchOption)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 패턴과 일치하는 현재 디렉터리에서 파일 목록을 반환하고 값을 사용하여 하위 디렉터리를 검색할지 여부를 결정합니다.

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

검색 작업에 현재 디렉터리 또는 모든 하위 디렉터리만 포함할지 여부를 지정하는 열거형 값 중 하나입니다.

반품

형식의 배열입니다 FileInfo.

예외

.NET Framework 및 2.1 이전의 .NET Core 버전: searchPattern 메서드에서 정의한 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 . . .

설명

EnumerateFiles 메서드와 GetFiles 메서드는 다음과 같이 다릅니다.

  • 사용할 EnumerateFiles때 전체 컬렉션이 반환되기 전에 개체 컬렉션을 FileInfo 열거할 수 있습니다.

  • 사용할 GetFiles때 배열에 액세스하기 전에 개체의 FileInfo 전체 배열이 반환될 때까지 기다려야 합니다.

따라서 많은 파일 및 디렉터리 EnumerateFiles 로 작업하는 경우 더 효율적일 수 있습니다.

파일이 없으면 이 메서드는 DirectoryInfo빈 배열을 반환합니다.

다음 와일드카드 지정자는 .에서 searchPattern허용됩니다.

와일드카드 문자 Description
* (별표) 문자가 0개 이상입니다.
? (물음표) 정확히 0자 또는 1자입니다.

반환된 파일 이름의 순서는 보장되지 않습니다. 특정 정렬 순서가 Sort 필요한 경우 메서드를 사용합니다.

와일드카드가 허용됩니다. 예를 들어 searchPattern "*.txt" 문자열은 "txt" 확장명을 가진 모든 파일 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 시작하는 모든 파일 이름을 검색합니다. 파일이 없거나 문자열과 일치하는 searchPatternDirectoryInfo파일이 없는 경우 이 메서드는 빈 배열을 반환합니다.

메모

별표 와일드카드 문자를 searchPattern 사용하는 경우(예: "*.txt") 지정된 파일 확장명 길이에 따라 일치하는 동작이 달라집니다. 정확히 3자의 파일 확장명을 가진 A searchPattern 는 3자 이상의 확장명을 가진 파일을 반환합니다. 여기서 처음 세 문자는 지정된 파일 확장명과 searchPattern일치합니다. 파일 확장명이 1자, 2자 또는 3자 이상인 A searchPattern 는 해당 확장명이 지정된 파일 확장 searchPattern명과 정확히 일치하는 파일만 반환합니다. 물음표 와일드카드 문자를 사용하는 경우 이 메서드는 지정된 파일 확장과 일치하는 파일만 반환합니다. 예를 들어 디렉터리에 "file1.txt" 및 "file1.txtother"라는 두 개의 파일이 지정된 경우 "file?.txt"는 첫 번째 파일만 반환하고 "file*.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()

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

현재 디렉터리에서 파일 목록을 반환합니다.

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

설명

EnumerateFiles 메서드와 GetFiles 메서드는 다음과 같이 다릅니다.

  • 사용할 EnumerateFiles때 전체 컬렉션이 반환되기 전에 개체 컬렉션을 FileInfo 열거할 수 있습니다.

  • 사용할 GetFiles때 배열에 액세스하기 전에 개체의 FileInfo 전체 배열이 반환될 때까지 기다려야 합니다.

따라서 많은 파일 및 디렉터리 EnumerateFiles 로 작업하는 경우 더 효율적일 수 있습니다.

파일이 없으면 이 메서드는 DirectoryInfo빈 배열을 반환합니다.

반환된 파일 이름의 순서는 보장되지 않습니다. 특정 정렬 순서가 Sort 필요한 경우 메서드를 사용합니다.

이 메서드는 다음 FileInfo 속성의 값을 미리 채웁니다.

추가 정보

적용 대상

GetFiles(String)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

지정된 검색 패턴과 일치하는 현재 디렉터리에서 파일 목록을 반환합니다.

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 및 2.1 이전의 .NET Core 버전: searchPattern 메서드에서 정의한 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"로 끝나는 모든 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 path 시작하는 모든 이름을 검색합니다.

EnumerateFiles 메서드와 GetFiles 메서드는 다음과 같이 다릅니다.

  • 사용할 EnumerateFiles때 전체 컬렉션이 반환되기 전에 개체 컬렉션을 FileInfo 열거할 수 있습니다.

  • 사용할 GetFiles때 배열에 액세스하기 전에 개체의 FileInfo 전체 배열이 반환될 때까지 기다려야 합니다.

따라서 많은 파일 및 디렉터리 EnumerateFiles 로 작업하는 경우 더 효율적일 수 있습니다.

파일이 없으면 이 메서드는 DirectoryInfo빈 배열을 반환합니다.

매개 변수에는 다음 와일드카드 지정자가 허용 searchPattern 됩니다.

와일드카드 문자 Description
* 문자가 0개 이상입니다.
? 정확히 0자 또는 1자입니다.

반환된 파일 이름의 순서는 보장되지 않습니다. 특정 정렬 순서가 Sort 필요한 경우 메서드를 사용합니다.

와일드카드가 허용됩니다. 예를 들어 searchPattern "*.txt" 문자열은 "txt" 확장명을 가진 모든 파일 이름을 검색합니다. 문자열 "s*"는 searchPattern 문자 "s"로 시작하는 모든 파일 이름을 검색합니다. 파일이 없거나 문자열과 일치하는 searchPatternDirectoryInfo파일이 없는 경우 이 메서드는 빈 배열을 반환합니다.

메모

별표 와일드카드 문자를 searchPattern 사용하는 경우(예: "*.txt") 지정된 파일 확장명 길이에 따라 일치하는 동작이 달라집니다. 정확히 3자의 파일 확장명을 가진 A searchPattern 는 3자 이상의 확장명을 가진 파일을 반환합니다. 여기서 처음 세 문자는 지정된 파일 확장명과 searchPattern일치합니다. 파일 확장명이 1자, 2자 또는 3자 이상인 A searchPattern 는 해당 확장명이 지정된 파일 확장 searchPattern명과 정확히 일치하는 파일만 반환합니다. 물음표 와일드카드 문자를 사용하는 경우 이 메서드는 지정된 파일 확장과 일치하는 파일만 반환합니다. 예를 들어 디렉터리에 "file1.txt" 및 "file1.txtother"라는 두 개의 파일이 지정된 경우 "file?.txt"는 첫 번째 파일만 반환하고 "file*.txt"의 검색 패턴은 두 파일을 모두 반환합니다.

메모

이 메서드는 8.3 파일 이름 형식과 긴 파일 이름 형식을 모두 사용하여 파일 이름을 확인하므로 "*1*.txt"와 유사한 검색 패턴은 예기치 않은 파일 이름을 반환할 수 있습니다. 예를 들어 "*1*.txt"의 검색 패턴을 사용하면 해당 8.3 파일 이름 형식이 "longf~1.txt"이기 때문에 "longfilename.txt"가 반환됩니다.

이 메서드는 다음 FileInfo 속성의 값을 미리 채웁니다.

추가 정보

적용 대상