DirectoryInfo.GetDirectories 메서드

정의

현재 디렉터리의 하위 디렉터리를 반환합니다.

오버로드

GetDirectories()

현재 디렉터리의 하위 디렉터리를 반환합니다.

GetDirectories(String)

주어진 검색 조건에 일치하는 현재 DirectoryInfo에 있는 디렉터리의 배열을 반환합니다.

GetDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다.

GetDirectories(String, SearchOption)

하위 디렉터리를 검색할지 여부를 나타내는 값을 사용하여 현재 DirectoryInfo에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다.

GetDirectories()

현재 디렉터리의 하위 디렉터리를 반환합니다.

public:
 cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories();
public System.IO.DirectoryInfo[] GetDirectories ();
member this.GetDirectories : unit -> System.IO.DirectoryInfo[]
Public Function GetDirectories () As DirectoryInfo()

반환

DirectoryInfo[]

DirectoryInfo 개체의 배열입니다.

예외

DirectoryInfo 개체에 캡슐화된 경로가 유효하지 않은 경우(예: 매핑되지 않은 드라이브의 경로에 해당하는 경우)

호출자에게 필요한 권한이 없는 경우

호출자에게 필요한 권한이 없는 경우

예제

다음 예제에서는 루트 디렉터리의 모든 디렉터리를 검색하고 디렉터리 이름을 표시합니다.

using namespace System;
using namespace System::IO;
int main()
{
   
   // Make a reference to a directory.
   DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\" );
   
   // Get a reference to each directory in that directory.
   array<DirectoryInfo^>^diArr = di->GetDirectories();
   
   // Display the names of the directories.
   Collections::IEnumerator^ myEnum = diArr->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      DirectoryInfo^ dri = safe_cast<DirectoryInfo^>(myEnum->Current);
      Console::WriteLine( dri->Name );
   }
}
using System;
using System.IO;

public class GetDirectoriesTest
{
    public static void Main()
    {

        // Make a reference to a directory.
        DirectoryInfo di = new DirectoryInfo("c:\\");

        // Get a reference to each directory in that directory.
        DirectoryInfo[] diArr = di.GetDirectories();

        // Display the names of the directories.
        foreach (DirectoryInfo dri in diArr)
            Console.WriteLine(dri.Name);
    }
}
open System.IO

// Make a reference to a directory.
let di = DirectoryInfo "c:\\"

// Get a reference to each directory in that directory.
let diArr = di.GetDirectories()

// Display the names of the directories.
for dri in diArr do
    printfn $"{dri.Name}"
Imports System.IO

Public Class GetDirectoriesTest

    Public Shared Sub Main()
        ' Make a reference to a directory.
        Dim di As New DirectoryInfo("c:\")
        ' Get a reference to each directory in that directory.
        Dim diArr As DirectoryInfo() = di.GetDirectories()
        ' Display the names of the directories.
        Dim dri As DirectoryInfo
        For Each dri In diArr
            Console.WriteLine(dri.Name)
        Next dri
    End Sub
End Class

설명

하위 디렉터리가 없으면 이 메서드는 빈 배열을 반환합니다. 이 메서드는 재귀적이지 않습니다.

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

추가 정보

적용 대상

GetDirectories(String)

주어진 검색 조건에 일치하는 현재 DirectoryInfo에 있는 디렉터리의 배열을 반환합니다.

public:
 cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern);
member this.GetDirectories : string -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String) As DirectoryInfo()

매개 변수

searchPattern
String

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

반환

DirectoryInfo[]

searchPattern에 일치하는 DirectoryInfo 형식의 배열입니다.

예외

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

searchPattern이(가) null인 경우

DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)

호출자에게 필요한 권한이 없는 경우

예제

다음 예제에서는 지정된 문자가 포함된 경로의 디렉터리를 계산합니다.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\" );
      
      // Get only subdirectories that contain the letter "p."
      array<DirectoryInfo^>^dirs = di->GetDirectories( "*p*" );
      Console::WriteLine( "The number of directories containing the letter p is {0}.", dirs->Length );
      Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         DirectoryInfo^ diNext = safe_cast<DirectoryInfo^>(myEnum->Current);
         Console::WriteLine( "The number of files in {0} is {1}", diNext, diNext->GetFiles()->Length );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            DirectoryInfo di = new DirectoryInfo(@"c:\");

            // Get only subdirectories that contain the letter "p."
            DirectoryInfo[] dirs = di.GetDirectories("*p*");
            Console.WriteLine("The number of directories containing the letter p is {0}.", dirs.Length);

            foreach (DirectoryInfo diNext in dirs)
            {
                Console.WriteLine("The number of files in {0} is {1}", diNext,
                    diNext.GetFiles().Length);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
open System.IO

try
    let di = DirectoryInfo @"c:\"

    // Get only subdirectories that contain the letter "p."
    let dirs = di.GetDirectories "*p*"
    printfn $"The number of directories containing the letter p is {dirs.Length}."

    for diNext in dirs do
        printfn $"The number of files in {diNext} is {diNext.GetFiles().Length}"
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\")

        Try
            'Get only subdirectories that contain the letter "p."
            Dim dirs As DirectoryInfo() = di.GetDirectories("*p*")
            Console.WriteLine("The number of directories containing the letter p is {0}.", dirs.Length)
            Dim diNext As DirectoryInfo
            For Each diNext In dirs
                Console.WriteLine("The number of files in {0} is {1}", diNext, _
                 diNext.GetFiles().Length)
            Next

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

설명

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

와일드카드 지정자 일치하는 항목
* (별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

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

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

추가 정보

적용 대상

GetDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다.

public:
 cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetDirectories : string * System.IO.EnumerationOptions -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As DirectoryInfo()

매개 변수

searchPattern
String

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

enumerationOptions
EnumerationOptions

사용할 검색 및 열거형 구성을 설명하는 개체입니다.

반환

DirectoryInfo[]

searchPatternenumerationOptions에 일치하는 형식의 배열 DirectoryInfo입니다.

예외

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

searchPattern이(가) null인 경우

DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)

호출자에게 필요한 권한이 없는 경우

설명

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

와일드카드 지정자 일치하는 항목
* (별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

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

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

적용 대상

GetDirectories(String, SearchOption)

하위 디렉터리를 검색할지 여부를 나타내는 값을 사용하여 현재 DirectoryInfo에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다.

public:
 cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.SearchOption searchOption);
member this.GetDirectories : string * System.IO.SearchOption -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String, searchOption As SearchOption) As DirectoryInfo()

매개 변수

searchPattern
String

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.

searchOption
SearchOption

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

반환

DirectoryInfo[]

searchPattern에 일치하는 DirectoryInfo 형식의 배열입니다.

예외

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

searchPattern이(가) null인 경우

searchOption는 유효한 SearchOption 값이 아닙니다.

DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)

호출자에게 필요한 권한이 없는 경우

예제

다음 예제에서는 "c:\"의 문자 "c"로 시작하는 모든 디렉터리와 파일을 나열합니다.

using namespace System;
using namespace System::IO;

ref class App
{
public:
    static void Main()
    {
        // Specify the directory you want to manipulate.
        String^ path = "c:\\";
        String^ searchPattern = "c*";

        DirectoryInfo^ di = gcnew DirectoryInfo(path);
        array<DirectoryInfo^>^ directories =
            di->GetDirectories(searchPattern, SearchOption::TopDirectoryOnly);

        array<FileInfo^>^ files =
            di->GetFiles(searchPattern, SearchOption::TopDirectoryOnly);

        Console::WriteLine(
            "Directories that begin with the letter \"c\" in {0}", path);
        for each (DirectoryInfo^ dir in directories)
        {
            Console::WriteLine(
                "{0,-25} {1,25}", dir->FullName, dir->LastWriteTime);
        }

        Console::WriteLine();
        Console::WriteLine(
            "Files that begin with the letter \"c\" in {0}", path);
        for each (FileInfo^ file in files)
        {
            Console::WriteLine(
                "{0,-25} {1,25}", file->Name, file->LastWriteTime);
        }
    } // Main()
}; // App()

int main()
{
    App::Main();
}
using System;
using System.IO;

class App
{
    public static void Main()
    {
        // Specify the directory you want to manipulate.
        string path = @"c:\";
        string searchPattern = "c*";

        DirectoryInfo di = new DirectoryInfo(path);
        DirectoryInfo[] directories =
            di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly);

        FileInfo[] files =
            di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);

        Console.WriteLine(
            "Directories that begin with the letter \"c\" in {0}", path);
        foreach (DirectoryInfo dir in directories)
        {
            Console.WriteLine(
                "{0,-25} {1,25}", dir.FullName, dir.LastWriteTime);
        }

        Console.WriteLine();
        Console.WriteLine(
            "Files that begin with the letter \"c\" in {0}", path);
        foreach (FileInfo file in files)
        {
            Console.WriteLine(
                "{0,-25} {1,25}", file.Name, file.LastWriteTime);
        }
    } // Main()
} // App()
open System.IO

// Specify the directory you want to manipulate.
let path = @"c:\"
let searchPattern = "c*"

let di = DirectoryInfo path
let directories = di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)

let files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)

printfn $"Directories that begin with the letter \"c\" in {path}"
for dir in directories do
    printfn $"{dir.FullName,-25} {dir.LastWriteTime,25}"

printfn $"\nFiles that begin with the letter \"c\" in {path}"
for file in files do
    printfn $"{file.Name,-25} {file.LastWriteTime,25}"
Imports System.IO

Class App
    Public Shared Sub Main()
        ' Specify the directory you want to manipulate.
        Dim path As String = "c:\\"
        Dim searchPattern As String = "c*"

        Dim di As DirectoryInfo = New DirectoryInfo(path)
        Dim directories() As DirectoryInfo = _
            di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)

        Dim files() As FileInfo = _
            di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)

        Console.WriteLine( _
            "Directories that begin with the letter 'c' in {0}", path)
        Dim dir As DirectoryInfo
        For Each dir In directories
            Console.WriteLine( _
                "{0,-25} {1,25}", dir.FullName, dir.LastWriteTime)
        Next dir

        Console.WriteLine()
        Console.WriteLine( _
            "Files that begin with the letter 'c' in {0}", path)
        Dim file As FileInfo
        For Each file In files
            Console.WriteLine( _
                "{0,-25} {1,25}", file.Name, file.LastWriteTime)
        Next file
    End Sub
End Class

설명

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

와일드카드 지정자 일치하는 항목
* (별표) 해당 위치에 0개 이상의 문자가 있습니다.
? (물음표) 해당 위치에 있는 문자가 0개 또는 1개입니다.

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

하위 디렉터리가 없거나 매개 변수와 일치하는 searchPattern 하위 디렉터리가 없는 경우 이 메서드는 빈 배열을 반환합니다.

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

추가 정보

적용 대상