DirectoryInfo.EnumerateDirectories 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 디렉터리에 있는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.
오버로드
EnumerateDirectories(String, SearchOption) |
지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, EnumerationOptions) |
지정된 검색 패턴 및 열거형 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories() |
현재 디렉터리에 있는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String) |
지정된 검색 패턴과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, SearchOption)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.SearchOption searchOption);
member this.EnumerateDirectories : string * System.IO.SearchOption -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, searchOption As SearchOption) As IEnumerable(Of DirectoryInfo)
매개 변수
- searchPattern
- String
디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
- searchOption
- SearchOption
검색 작업에 현재 디렉터리만 포함할지 아니면 모든 하위 디렉터리를 포함할지를 지정하는 열거형 값 중 하나입니다. 기본값은 TopDirectoryOnly입니다.
반환
searchPattern
및 searchOption
과 일치하는 디렉터리의 열거 가능 컬렉션입니다.
예외
searchPattern
이(가) null
인 경우
searchOption
는 유효한 SearchOption 값이 아닙니다.
DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
호출자에게 필요한 권한이 없는 경우
예제
다음 예제에서는 이 메서드와 EnumerateFiles 메서드를 사용하여 시작 디렉터리 내에서 파일 및 디렉터리를 열거하고 10MB를 넘는 파일의 이름과 크기를 표시합니다.
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Set a variable to the My Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo diTop = new DirectoryInfo(docPath);
try
{
foreach (var fi in diTop.EnumerateFiles())
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthTop)
{
Console.WriteLine($"{unAuthTop.Message}");
}
}
foreach (var di in diTop.EnumerateDirectories("*"))
{
try
{
foreach (var fi in di.EnumerateFiles("*", SearchOption.AllDirectories))
{
try
{
// Display each file over 10 MB.
if (fi.Length > 10000000)
{
Console.WriteLine($"{fi.FullName}\t\t{fi.Length:N0}");
}
}
catch (UnauthorizedAccessException unAuthFile)
{
Console.WriteLine($"unAuthFile: {unAuthFile.Message}");
}
}
}
catch (UnauthorizedAccessException unAuthSubDir)
{
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}");
}
}
}
catch (DirectoryNotFoundException dirNotFound)
{
Console.WriteLine($"{dirNotFound.Message}");
}
catch (UnauthorizedAccessException unAuthDir)
{
Console.WriteLine($"unAuthDir: {unAuthDir.Message}");
}
catch (PathTooLongException longPath)
{
Console.WriteLine($"{longPath.Message}");
}
}
}
open System
open System.IO
// Set a variable to the My Documents path.
let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments
let diTop = DirectoryInfo docPath
try
for fi in diTop.EnumerateFiles() do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthTop ->
printfn $"{unAuthTop.Message}"
for di in diTop.EnumerateDirectories "*" do
try
for fi in di.EnumerateFiles("*", SearchOption.AllDirectories) do
try
// Display each file over 10 MB.
if fi.Length > 10000000 then
printfn $"{fi.FullName}\t\t{fi.Length:N0}"
with :? UnauthorizedAccessException as unAuthFile ->
printfn $"unAuthFile: {unAuthFile.Message}"
with :? UnauthorizedAccessException as unAuthSubDir ->
printfn $"unAuthSubDir: {unAuthSubDir.Message}"
with
| :? DirectoryNotFoundException as dirNotFound ->
Console.WriteLine($"{dirNotFound.Message}")
| :? UnauthorizedAccessException as unAuthDir ->
printfn $"unAuthDir: {unAuthDir.Message}"
| :? PathTooLongException as longPath ->
printfn $"{longPath.Message}"
Imports System.IO
Class Program
Public Shared Sub Main(ByVal args As String())
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim diTop As New DirectoryInfo(dirPath)
Try
For Each fi In diTop.EnumerateFiles()
Try
' Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab & vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthTop As UnauthorizedAccessException
Console.WriteLine($"{unAuthTop.Message}")
End Try
Next
For Each di In diTop.EnumerateDirectories("*")
Try
For Each fi In di.EnumerateFiles("*", SearchOption.AllDirectories)
Try
' // Display each file over 10 MB;
If fi.Length > 10000000 Then
Console.WriteLine("{0}" & vbTab &
vbTab & "{1}", fi.FullName, fi.Length.ToString("N0"))
End If
Catch unAuthFile As UnauthorizedAccessException
Console.WriteLine($"unAuthFile: {unAuthFile.Message}")
End Try
Next
Catch unAuthSubDir As UnauthorizedAccessException
Console.WriteLine($"unAuthSubDir: {unAuthSubDir.Message}")
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
Console.WriteLine($"{dirNotFound.Message}")
Catch unAuthDir As UnauthorizedAccessException
Console.WriteLine($"unAuthDir: {unAuthDir.Message}")
Catch longPath As PathTooLongException
Console.WriteLine($"{longPath.Message}")
End Try
End Sub
End Class
설명
searchPattern
는 리터럴 문자와 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern
.
와일드카드 지정자 | 일치하는 항목 |
---|---|
*(별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 해당 위치에 있는 문자가 0개 또는 1개입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern
문자 "s"로 path
시작하는 의 모든 이름을 검색합니다.
및 GetDirectories 메서드는 EnumerateDirectories 다음과 같이 다릅니다.
를 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 개체 컬렉션을 DirectoryInfo 열거할 수 있습니다.
를 사용하는 GetDirectories경우 배열에 액세스하기 전에 개체의 DirectoryInfo 전체 배열이 반환될 때까지 기다려야 합니다.
따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 보다 효율적일 수 있습니다.
이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.
반환된 컬렉션은 캐시되지 않습니다. 컬렉션에서 메서드를 GetEnumerator 호출할 때마다 새 열거형이 시작됩니다.
적용 대상
EnumerateDirectories(String, EnumerationOptions)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
지정된 검색 패턴 및 열거형 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.EnumerateDirectories : string * System.IO.EnumerationOptions -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of DirectoryInfo)
매개 변수
- searchPattern
- String
디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
- enumerationOptions
- EnumerationOptions
사용할 검색 및 열거형 구성을 설명하는 개체입니다.
반환
searchPattern
및 enumerationOptions
과 일치하는 디렉터리의 열거 가능 컬렉션입니다.
예외
searchPattern
이(가) null
인 경우
DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
호출자에게 필요한 권한이 없는 경우
설명
searchPattern
는 리터럴 문자와 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern
.
와일드카드 지정자 | 일치하는 항목 |
---|---|
*(별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 해당 위치에 있는 문자가 0개 또는 1개입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern
문자 "s"로 path
시작하는 의 모든 이름을 검색합니다.
및 GetDirectories 메서드는 EnumerateDirectories 다음과 같이 다릅니다.
를 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 개체 컬렉션을 DirectoryInfo 열거할 수 있습니다.
를 사용하는 GetDirectories경우 배열에 액세스하기 전에 개체의 DirectoryInfo 전체 배열이 반환될 때까지 기다려야 합니다.
따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 보다 효율적일 수 있습니다.
이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.
반환된 컬렉션은 캐시되지 않습니다. 컬렉션에서 메서드를 GetEnumerator 호출할 때마다 새 열거형이 시작됩니다.
적용 대상
EnumerateDirectories()
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
현재 디렉터리에 있는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories();
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories ();
member this.EnumerateDirectories : unit -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories () As IEnumerable(Of DirectoryInfo)
반환
현재 디렉터리에 있는 디렉터리의 열거 가능 컬렉션입니다.
예외
DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
호출자에게 필요한 권한이 없는 경우
예제
다음 예제에서는 C:\Program Files 디렉터리 아래의 하위 디렉터리를 열거하고 LINQ 쿼리를 사용하여 속성 값을 CreationTimeUtc 확인하여 2009년 이전에 만든 모든 디렉터리의 이름을 반환합니다.
하위 디렉터리의 이름만 필요한 경우 성능 향상을 위해 정적 Directory 클래스를 사용합니다. 예를 들어 참조 된 EnumerateDirectories(String) 메서드.
using System;
using System.IO;
namespace EnumDir
{
class Program
{
static void Main(string[] args)
{
// Set a variable to the Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
DirectoryInfo dirPrograms = new DirectoryInfo(docPath);
DateTime StartOf2009 = new DateTime(2009, 01, 01);
var dirs = from dir in dirPrograms.EnumerateDirectories()
where dir.CreationTimeUtc > StartOf2009
select new
{
ProgDir = dir,
};
foreach (var di in dirs)
{
Console.WriteLine($"{di.ProgDir.Name}");
}
}
}
}
// </Snippet1>
module program
// <Snippet1>
open System
open System.IO
// Set a variable to the Documents path.
let docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
let dirPrograms = DirectoryInfo docPath
let startOf2009 = DateTime(2009, 01, 01)
let dirs =
query {
for dir in dirPrograms.EnumerateDirectories() do
where (dir.CreationTimeUtc > startOf2009)
select {| ProgDir = dir |}
}
for di in dirs do
printfn $"{di.ProgDir.Name}"
// </Snippet1>
Imports System.IO
Module Module1
Sub Main()
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dirPrograms As New DirectoryInfo(dirPath)
Dim StartOf2009 As New DateTime(2009, 1, 1)
Dim dirs = From dir In dirPrograms.EnumerateDirectories()
Where dir.CreationTimeUtc > StartOf2009
For Each di As DirectoryInfo In dirs
Console.WriteLine("{0}", di.Name)
Next
End Sub
End Module
설명
및 GetDirectories 메서드는 EnumerateDirectories 다음과 같이 다릅니다.
를 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 개체 컬렉션을 DirectoryInfo 열거할 수 있습니다.
를 사용하는 GetDirectories경우 배열에 액세스하기 전에 개체의 DirectoryInfo 전체 배열이 반환될 때까지 기다려야 합니다.
따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 보다 효율적일 수 있습니다.
이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.
반환된 컬렉션은 캐시되지 않습니다. 컬렉션에서 메서드를 GetEnumerator 호출할 때마다 새 열거형이 시작됩니다.
적용 대상
EnumerateDirectories(String)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
지정된 검색 패턴과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.
public:
System::Collections::Generic::IEnumerable<System::IO::DirectoryInfo ^> ^ EnumerateDirectories(System::String ^ searchPattern);
public System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo> EnumerateDirectories (string searchPattern);
member this.EnumerateDirectories : string -> seq<System.IO.DirectoryInfo>
Public Function EnumerateDirectories (searchPattern As String) As IEnumerable(Of DirectoryInfo)
매개 변수
- searchPattern
- String
디렉터리 이름과 일치하는지 비교할 검색 문자열입니다. 이 매개 변수는 유효한 리터럴 경로와 와일드카드(* 및 ?) 문자로 된 조합을 포함하지만 정규식을 지원하지 않습니다.
반환
searchPattern
과 일치하는 디렉터리의 열거 가능 컬렉션입니다.
예외
searchPattern
이(가) null
인 경우
DirectoryInfo 개체에서 캡슐화된 경로가 잘못된 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
호출자에게 필요한 권한이 없는 경우
설명
searchPattern
는 리터럴 문자와 와일드카드 문자의 조합일 수 있지만 정규식을 지원하지는 않습니다. 에서 허용되는 와일드카드 지정자는 다음과 같습니다 searchPattern
.
와일드카드 지정자 | 일치하는 항목 |
---|---|
*(별표) | 해당 위치에 0개 이상의 문자가 있습니다. |
? (물음표) | 해당 위치에 있는 문자가 0개 또는 1개입니다. |
와일드카드 이외의 문자는 리터럴 문자입니다. 예를 들어 문자열 "*t"는 문자 "t"로 끝나는 의 모든 이름을 검색합니다. ". 문자열 "s*"는 searchPattern
문자 "s"로 path
시작하는 의 모든 이름을 검색합니다.
및 GetDirectories 메서드는 EnumerateDirectories 다음과 같이 다릅니다.
를 사용하는 EnumerateDirectories경우 전체 컬렉션이 반환되기 전에 개체 컬렉션을 DirectoryInfo 열거할 수 있습니다.
를 사용하는 GetDirectories경우 배열에 액세스하기 전에 개체의 DirectoryInfo 전체 배열이 반환될 때까지 기다려야 합니다.
따라서 많은 파일 및 디렉터리 EnumerateDirectories 로 작업할 때 보다 효율적일 수 있습니다.
이 메서드는 다음 DirectoryInfo 속성의 값을 미리 채웁니다.
반환된 컬렉션은 캐시되지 않습니다. 컬렉션에서 메서드를 GetEnumerator 호출할 때마다 새 열거형이 시작됩니다.
적용 대상
.NET