DirectoryInfo.GetDirectories 메서드

정의

현재 디렉터리의 하위 디렉터리를 반환합니다.Returns the subdirectories of the current directory.

오버로드

GetDirectories()

현재 디렉터리의 하위 디렉터리를 반환합니다.Returns the subdirectories of the current directory.

GetDirectories(String)

주어진 검색 조건에 일치하는 현재 DirectoryInfo 에 있는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options.

GetDirectories(String, SearchOption)

하위 디렉터리를 검색할지를 나타내는 값을 사용하여 현재 DirectoryInfo 에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

GetDirectories()

현재 디렉터리의 하위 디렉터리를 반환합니다.Returns the subdirectories of the current directory.

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 개체의 배열입니다.An array of DirectoryInfo objects.

예외

DirectoryInfo 개체에 캡슐화된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).The path encapsulated in the DirectoryInfo object is invalid, such as being on an unmapped drive.

호출자에게 필요한 사용 권한이 없습니다.The caller does not have the required permission.

호출자에게 필요한 사용 권한이 없습니다.The caller does not have the required permission.

예제

다음 예제는 루트 디렉터리에 있는 모든 디렉터리를 검색 하 고 디렉터리 이름을 표시 합니다.The following example retrieves all the directories in the root directory and displays the directory names.

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);
    }
}
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

설명

하위 디렉터리가 없으면이 메서드는 빈 배열을 반환 합니다.If there are no subdirectories, this method returns an empty array. 이 메서드는 재귀 되지 않습니다.This method is not recursive.

이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.This method pre-populates the values of the following DirectoryInfo properties:

추가 정보

GetDirectories(String)

주어진 검색 조건에 일치하는 현재 DirectoryInfo 에 있는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

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

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다.The search string to match against the names of directories. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

반환

DirectoryInfo[]

searchPattern에 일치하는 DirectoryInfo 형식의 배열입니다.An array of type DirectoryInfo matching searchPattern.

예외

searchPattern에는 GetInvalidPathChars() 메서드로 정의된 잘못된 문자가 하나 이상 포함되어 있습니다.searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

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 counts the directories in a path that contain the specified letter.

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());
        }
    }
}
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 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*"는 문자 "s"로 시작 하는 path의 모든 이름을 검색 합니다.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.This method pre-populates the values of the following DirectoryInfo properties:

추가 정보

GetDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options.

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

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다.The search string to match against the names of directories. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.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.

반환

DirectoryInfo[]

searchPatternenumerationOptions에 일치하는 형식의 배열 DirectoryInfo입니다.An array of type DirectoryInfo matching searchPattern and enumerationOptions.

예외

searchPattern에는 GetInvalidPathChars() 메서드로 정의된 잘못된 문자가 하나 이상 포함되어 있습니다.searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

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.

설명

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*"는 문자 "s"로 시작 하는 path의 모든 이름을 검색 합니다.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.This method pre-populates the values of the following DirectoryInfo properties:

GetDirectories(String, SearchOption)

하위 디렉터리를 검색할지를 나타내는 값을 사용하여 현재 DirectoryInfo 에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

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

디렉터리 이름과 일치하는지 비교할 검색 문자열입니다.The search string to match against the names of directories. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.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.

반환

DirectoryInfo[]

searchPattern에 일치하는 DirectoryInfo 형식의 배열입니다.An array of type DirectoryInfo matching searchPattern.

예외

searchPattern에는 GetInvalidPathChars() 메서드로 정의된 잘못된 문자가 하나 이상 포함되어 있습니다.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.

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.

예제

다음 예제에서는 "c:\"에서 문자 "c"로 시작 하는 모든 디렉터리와 파일을 나열 합니다.The following example lists all of the directories and files that begin with the letter "c" in "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()
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 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*"는 문자 "s"로 시작 하는 path의 모든 이름을 검색 합니다.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

하위 디렉터리가 없거나 searchPattern 매개 변수와 일치 하는 하위 디렉터리가 없는 경우이 메서드는 빈 배열을 반환 합니다.If there are no subdirectories, or no subdirectories match the searchPattern parameter, this method returns an empty array.

이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.This method pre-populates the values of the following DirectoryInfo properties:

추가 정보

적용 대상