Directory.GetDirectories 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 조건을 충족하는 하위 디렉터리 이름을 반환합니다.
오버로드
GetDirectories(String, String, SearchOption) |
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리(해당 경로 포함)의 이름을 가져오고 선택적으로 하위 디렉터리를 반환합니다. |
GetDirectories(String, String, EnumerationOptions) |
지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다. |
GetDirectories(String) |
지정된 디렉터리에 있는 하위 디렉터리의 이름(경로 포함)을 반환합니다. |
GetDirectories(String, String) |
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다. |
GetDirectories(String, String, SearchOption)
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리(해당 경로 포함)의 이름을 가져오고 선택적으로 하위 디렉터리를 반환합니다.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetDirectories : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, searchOption As SearchOption) As String()
매개 변수
- path
- String
검색할 디렉터리에 대한 상대 또는 절대 경로입니다. 이 문자열은 대/소문자를 구분하지 않습니다.
- searchPattern
- String
path
에 있는 하위 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 및 와일드카드 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
- searchOption
- SearchOption
검색 작업에 현재 디렉터리만 포함할지 아니면 모든 하위 디렉터리를 포함할지를 지정하는 열거형 값 중 하나입니다.
반환
- String[]
지정된 조건과 일치하는 하위 디렉터리의 전체 이름(경로 포함)의 배열이거나 디렉터리가 없으면 빈 배열입니다.
예외
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
또는
searchPattern
에 유효한 패턴이 포함되어 있지 않습니다.
path
또는 searchPattern
가 null
인 경우
searchOption
는 유효한 SearchOption 값이 아닙니다.
호출자에게 필요한 권한이 없는 경우
지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.
path
는 파일 이름입니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).
예제
다음 예제에서는 경로에서 지정된 문자로 시작하는 디렉터리 수를 계산합니다. 최상위 디렉터리만 검색됩니다.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly);
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
let dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly)
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
Dim dirs As String() = Directory.GetDirectories("c:\", "p*", SearchOption.TopDirectoryOnly)
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
설명
매개 변수는 path
상대 또는 절대 경로 정보를 지정할 수 있으며 대/소문자를 구분하지 않습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 작업 디렉터리를 가져오려면 다음을 참조하세요 GetCurrentDirectory.
searchPattern
는 리터럴과 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern
.
와일드카드 지정자 | 일치하는 항목 |
---|---|
* (별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 해당 위치의 정확히 한 문자입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 searchPattern
문자열 "t"는 문자 "*t"로 끝나는 모든 이름을 path
검색합니다. 문자열 "s"는 searchPattern
문자 "s*"로 path
시작하는 모든 이름을 검색합니다.
searchPattern
는 두 개의 마침표("..")로 끝나거나 두 개의 마침표("..") DirectorySeparatorChar 를 포함하거나 AltDirectorySeparatorChar잘못된 문자를 포함할 수 없습니다. GetInvalidPathChars 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
메서드와 GetDirectories 메서드는 EnumerateDirectories 다음과 같습니다. 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 이름 컬렉션을 열거할 수 있습니다. 사용할 GetDirectories때는 전체 이름 배열이 반환될 때까지 기다려야 배열에 액세스할 수 있습니다. 따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 더 효율적일 수 있습니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
추가 정보
적용 대상
GetDirectories(String, String, EnumerationOptions)
지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetDirectories : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
매개 변수
- path
- String
검색할 디렉터리에 대한 상대 또는 절대 경로입니다. 이 문자열은 대/소문자를 구분하지 않습니다.
- searchPattern
- String
path
에 있는 하위 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 및 와일드카드 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
- enumerationOptions
- EnumerationOptions
사용할 검색 및 열거형 구성을 설명하는 개체입니다.
반환
- String[]
지정된 디렉터리에서 검색 패턴 및 열거형 옵션과 일치하는 하위 디렉터리의 전체 이름(경로 포함)의 배열이거나 디렉터리가 없으면 빈 배열입니다.
예외
호출자에게 필요한 권한이 없는 경우
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars()를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
또는
searchPattern
에 유효한 패턴이 포함되어 있지 않습니다.
path
또는 searchPattern
가 null
인 경우
지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.
path
는 파일 이름입니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).
설명
이 메서드는 지정된 검색 패턴과 일치하는 지정된 디렉터리 바로 아래에 있는 모든 하위 디렉터리를 반환합니다. 지정된 디렉터리에 하위 디렉터리가 없거나 매개 변수와 일치하는 searchPattern
하위 디렉터리가 없는 경우 이 메서드는 빈 배열을 반환합니다. 상위 디렉터리만 검색됩니다. 하위 디렉터리도 검색하려면 메서드를 GetDirectories(String, String, SearchOption) 사용하고 매개 변수에 searchOption
지정 AllDirectories 합니다.
searchPattern
는 리터럴과 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern
.
와일드카드 지정자 | 일치하는 항목 |
---|---|
* (별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 해당 위치의 정확히 한 문자입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 searchPattern
문자열 "t"는 문자 "*t"로 끝나는 모든 이름을 path
검색합니다. 문자열 "s"는 searchPattern
문자 "s*"로 path
시작하는 모든 이름을 검색합니다.
searchPattern
는 두 개의 마침표("..")로 끝나거나 두 개의 마침표("..") DirectorySeparatorChar 를 포함하거나 AltDirectorySeparatorChar잘못된 문자를 포함할 수 없습니다. GetInvalidPathChars 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
매개 변수는 path
상대 또는 절대 경로 정보를 지정할 수 있으며 대/소문자를 구분하지 않습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 작업 디렉터리를 가져오려면 다음을 참조하세요 GetCurrentDirectory.
메서드와 GetDirectories 메서드는 EnumerateDirectories 다음과 같습니다. 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 이름 컬렉션을 열거할 수 있습니다. 사용할 GetDirectories때는 전체 이름 배열이 반환될 때까지 기다려야 배열에 액세스할 수 있습니다. 따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 더 효율적일 수 있습니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
적용 대상
GetDirectories(String)
지정된 디렉터리에 있는 하위 디렉터리의 이름(경로 포함)을 반환합니다.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path);
public static string[] GetDirectories (string path);
static member GetDirectories : string -> string[]
Public Shared Function GetDirectories (path As String) As String()
매개 변수
- path
- String
검색할 디렉터리에 대한 상대 또는 절대 경로입니다. 이 문자열은 대/소문자를 구분하지 않습니다.
반환
- String[]
지정된 경로에서 하위 디렉터리의 전체 이름(경로 포함)의 배열이거나 디렉터리가 없으면 빈 배열입니다.
예외
호출자에게 필요한 권한이 없는 경우
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars() 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
path
이(가) null
인 경우
지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.
path
는 파일 이름입니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).
예제
다음 예제에서는 명령줄에서 파일 또는 디렉터리 이름의 배열을 사용하고, 이름 종류를 결정하고, 적절하게 처리합니다.
// For Directory::GetFiles and Directory::GetDirectories
// For File::Exists, Directory::Exists
using namespace System;
using namespace System::IO;
using namespace System::Collections;
// Insert logic for processing found files here.
void ProcessFile( String^ path )
{
Console::WriteLine( "Processed file '{0}'.", path );
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
void ProcessDirectory( String^ targetDirectory )
{
// Process the list of files found in the directory.
array<String^>^fileEntries = Directory::GetFiles( targetDirectory );
IEnumerator^ files = fileEntries->GetEnumerator();
while ( files->MoveNext() )
{
String^ fileName = safe_cast<String^>(files->Current);
ProcessFile( fileName );
}
// Recurse into subdirectories of this directory.
array<String^>^subdirectoryEntries = Directory::GetDirectories( targetDirectory );
IEnumerator^ dirs = subdirectoryEntries->GetEnumerator();
while ( dirs->MoveNext() )
{
String^ subdirectory = safe_cast<String^>(dirs->Current);
ProcessDirectory( subdirectory );
}
}
int main( int argc, char *argv[] )
{
for ( int i = 1; i < argc; i++ )
{
String^ path = gcnew String(argv[ i ]);
if ( File::Exists( path ) )
{
// This path is a file
ProcessFile( path );
}
else
if ( Directory::Exists( path ) )
{
// This path is a directory
ProcessDirectory( path );
}
else
{
Console::WriteLine( "{0} is not a valid file or directory.", path );
}
}
}
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main(string[] args)
{
foreach(string path in args)
{
if(File.Exists(path))
{
// This path is a file
ProcessFile(path);
}
else if(Directory.Exists(path))
{
// This path is a directory
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.", path);
}
}
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
public static void ProcessDirectory(string targetDirectory)
{
// Process the list of files found in the directory.
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
// Recurse into subdirectories of this directory.
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
// Insert logic for processing found files here.
public static void ProcessFile(string path)
{
Console.WriteLine("Processed file '{0}'.", path);
}
}
module RecursiveFileProcessor
open System.IO
// Insert logic for processing found files here.
let processFile path =
printfn $"Processed file '%s{path}'."
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
// Process the list of files found in the directory.
let fileEntries = Directory.GetFiles targetDirectory
for fileName in fileEntries do
processFile fileName
// Recurse into subdirectories of this directory.
let subdirectoryEntries = Directory.GetDirectories targetDirectory
for subdirectory in subdirectoryEntries do
processDirectory subdirectory
[<EntryPoint>]
let main args =
for path in args do
if File.Exists path then
// This path is a file
processFile path
elif Directory.Exists path then
// This path is a directory
processDirectory path
else
printfn $"{path} is not a valid file or directory."
0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists
Imports System.IO
Imports System.Collections
Public Class RecursiveFileProcessor
Public Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub
' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)
Next fileName
Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectory
End Sub
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub
End Class
설명
이 메서드는 검색 패턴으로 지정된 별표(*)와 동일 GetDirectories(String, String) 하므로 모든 하위 디렉터리를 반환합니다. 하위 디렉터리를 검색해야 하는 경우 매개 변수를 사용하여 하위 디렉터리 검색을 지정할 수 있는 메서드를 searchOption
사용합니다GetDirectories(String, String, SearchOption).
메서드와 GetDirectories 메서드는 EnumerateDirectories 다음과 같습니다. 사용할 EnumerateDirectories때 전체 컬렉션이 반환되기 전에 이름 컬렉션을 열거할 수 있습니다. 사용할 GetDirectories때 전체 이름 배열이 반환될 때까지 기다려야 배열에 액세스할 수 있습니다. 따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업하는 경우 더 효율적일 수 있습니다.
매개 변수는 path
상대 경로 또는 절대 경로 정보를 지정할 수 있습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 작업 디렉터리를 가져오려면 다음을 참조하세요 GetCurrentDirectory.
이 메서드에서 반환된 이름에는 제공된 디렉터리 정보가 접두사로 지정됩니다 path
.
매개 변수는 path
대/소문자를 구분하지 않습니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
추가 정보
적용 대상
GetDirectories(String, String)
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern);
public static string[] GetDirectories (string path, string searchPattern);
static member GetDirectories : string * string -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String) As String()
매개 변수
- path
- String
검색할 디렉터리에 대한 상대 또는 절대 경로입니다. 이 문자열은 대/소문자를 구분하지 않습니다.
- searchPattern
- String
path
에 있는 하위 디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 및 와일드카드 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
반환
- String[]
지정된 디렉터리에서 검색 패턴과 일치하는 하위 디렉터리의 전체 이름(경로 포함)의 배열이거나 디렉터리가 없으면 빈 배열입니다.
예외
호출자에게 필요한 권한이 없는 경우
2.1보다 오래된 .NET Framework 및 .NET Core 버전: path
길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다. GetInvalidPathChars()를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
또는
searchPattern
에 유효한 패턴이 포함되어 있지 않습니다.
path
또는 searchPattern
가 null
인 경우
지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.
path
는 파일 이름입니다.
지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).
예제
다음 예제에서는 지정된 문자로 시작하는 경로의 디렉터리 수를 계산합니다.
using namespace System;
using namespace System::IO;
int main()
{
try
{
// Only get subdirectories that begin with the letter "p."
array<String^>^dirs = Directory::GetDirectories( "c:\\", "p*" );
Console::WriteLine( "The number of directories starting with p is {0}.", dirs->Length );
Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
while ( myEnum->MoveNext() )
{
Console::WriteLine( myEnum->Current );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get subdirectories that begin with the letter "p."
string[] dirs = Directory.GetDirectories(@"c:\", "p*");
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
// Only get subdirectories that begin with the letter "p."
let dirs = Directory.GetDirectories(@"c:\", "p*")
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
' Only get subdirectories that begin with the letter "p."
Dim dirs As String() = Directory.GetDirectories("c:\", "p*")
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
설명
이 메서드는 지정된 검색 패턴과 일치하는 지정된 디렉터리 바로 아래에 있는 모든 하위 디렉터리를 반환합니다. 지정된 디렉터리에 하위 디렉터리가 없거나 매개 변수와 일치하는 searchPattern
하위 디렉터리가 없는 경우 이 메서드는 빈 배열을 반환합니다. 상위 디렉터리만 검색됩니다. 하위 디렉터리도 검색하려면 메서드를 GetDirectories(String, String, SearchOption) 사용하고 매개 변수에 searchOption
지정 AllDirectories 합니다.
searchPattern
리터럴과 와일드카드 문자의 조합일 수 있지만 정규식은 지원하지 않습니다. 다음 와일드카드 지정자는 에서 searchPattern
허용됩니다.
와일드카드 지정자 | 일치하는 항목 |
---|---|
* (별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 정확히 그 위치에 있는 한 문자입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 searchPattern
문자열 "t"는 문자 "*t"로 끝나는 모든 이름을 path
검색합니다. 문자열 "s"는 searchPattern
문자 "s*"로 path
시작하는 모든 이름을 검색합니다.
searchPattern
는 두 개의 마침표("..")로 끝나거나 두 개의 마침표("..") DirectorySeparatorChar 를 포함하거나 AltDirectorySeparatorChar잘못된 문자를 포함할 수 없습니다. GetInvalidPathChars 메서드를 사용하여 잘못된 문자를 쿼리할 수 있습니다.
매개 변수는 path
상대 또는 절대 경로 정보를 지정할 수 있으며 대/소문자를 구분하지 않습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다. 현재 작업 디렉터리를 가져오려면 다음을 참조하세요 GetCurrentDirectory.
메서드와 GetDirectories 메서드는 EnumerateDirectories 다음과 같습니다. 사용할 EnumerateDirectories때 전체 컬렉션이 반환되기 전에 이름 컬렉션을 열거할 수 있습니다. 사용할 GetDirectories때 전체 이름 배열이 반환될 때까지 기다려야 배열에 액세스할 수 있습니다. 따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업하는 경우 더 효율적일 수 있습니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.