Directory.EnumerateDirectories メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された条件を満たすディレクトリの完全名から成る、列挙可能なコレクションを返します。
オーバーロード
EnumerateDirectories(String) |
指定されたパスに存在するディレクトリの完全名から成る、列挙可能なコレクションを返します。 |
EnumerateDirectories(String, String) |
指定されたパスから、検索パターンに一致するディレクトリの完全名から成る、列挙可能なコレクションを返します。 |
EnumerateDirectories(String, String, EnumerationOptions) |
指定したパス内にあり、検索パターンと一致するディレクトリの完全名の列挙可能なコレクションを返します。必要に応じて、サブディレクトリを検索します。 |
EnumerateDirectories(String, String, SearchOption) |
指定されたパスから、検索パターンに一致するディレクトリの完全名から成る、列挙可能なコレクションを返します。オプションでサブディレクトリを検索対象にできます。 |
EnumerateDirectories(String)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定されたパスに存在するディレクトリの完全名から成る、列挙可能なコレクションを返します。
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path);
static member EnumerateDirectories : string -> seq<string>
Public Shared Function EnumerateDirectories (path As String) As IEnumerable(Of String)
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
戻り値
path
で指定したディレクトリ内にあるディレクトリの完全名 (パスを含む) から成る列挙可能なコレクション。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
path
が null
です。
たとえば、マップされていないドライブへの参照など、path
は無効です。
path
はファイル名です。
指定されたパス、ファイル名、または結合は、システム定義の最大長を超えています。
呼び出し元に、必要なアクセス許可がありません。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、指定したパス内の最上位のディレクトリを列挙します。
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
private static void Main(string[] args)
{
try
{
// Set a variable to the My Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
List<string> dirs = new List<string>(Directory.EnumerateDirectories(docPath));
foreach (var dir in dirs)
{
Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}");
}
Console.WriteLine($"{dirs.Count} directories found.");
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine(ex.Message);
}
catch (PathTooLongException ex)
{
Console.WriteLine(ex.Message);
}
}
}
open System
open System.IO
try
// Set a variable to the My Documents path.
let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments
let dirs = Directory.EnumerateDirectories docPath |> Seq.toList
for dir in dirs do
printfn $"{dir.Substring(dir.LastIndexOf Path.DirectorySeparatorChar + 1)}"
printfn $"{dirs.Length} directories found."
with
| :? UnauthorizedAccessException as ex ->
printfn $"{ex.Message}"
| :? PathTooLongException as ex ->
printfn $"{ex.Message}"
Imports System.Collections.Generic
Imports System.IO
Module Module1
Sub Main()
Try
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))
For Each folder In dirs
Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}")
Next
Console.WriteLine($"{dirs.Count} directories found.")
Catch ex As UnauthorizedAccessException
Console.WriteLine(ex.Message)
Catch ex As PathTooLongException
Console.WriteLine(ex.Message)
End Try
End Sub
End Module
注釈
相対パスまたは絶対パス情報は path
、 パラメーターで指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。これは、 メソッドを GetCurrentDirectory 使用して判断できます。 返されるディレクトリ名の前には、 パラメーターで指定した値が path
付きます。 たとえば、 パラメーターに path
相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
メソッドと GetDirectories メソッドはEnumerateDirectories次のように異なります。を使用EnumerateDirectoriesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetDirectoriesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの を GetEnumerator 呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定されたパスから、検索パターンに一致するディレクトリの完全名から成る、列挙可能なコレクションを返します。
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern);
static member EnumerateDirectories : string * string -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String) As IEnumerable(Of String)
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
戻り値
指定した検索パターンに一致し、path
で指定したディレクトリの中にあるディレクトリの完全名 (パスを含む) から成る列挙可能なコレクション。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が含まれています。 GetInvalidPathChars() メソッドを使用して、正しくない文字に対するクエリを実行できます。
- または -
searchPattern
には有効なパターンが含まれません。
たとえば、マップされていないドライブへの参照など、path
は無効です。
path
はファイル名です。
指定されたパス、ファイル名、または結合は、システム定義の最大長を超えています。
呼び出し元に、必要なアクセス許可がありません。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、指定した検索パターンに一致する指定したパス内の最上位のディレクトリを列挙します。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
private static void Main(string[] args)
{
try
{
string dirPath = @"\\archives\2009\reports";
// LINQ query.
var dirs = from dir in
Directory.EnumerateDirectories(dirPath, "dv_*")
select dir;
// Show results.
foreach (var dir in dirs)
{
// Remove path information from string.
Console.WriteLine("{0}",
dir.Substring(dir.LastIndexOf("\\") + 1));
}
Console.WriteLine("{0} directories found.",
dirs.Count<string>().ToString());
// Optionally create a List collection.
List<string> workDirs = new List<string>(dirs);
}
catch (UnauthorizedAccessException UAEx)
{
Console.WriteLine(UAEx.Message);
}
catch (PathTooLongException PathEx)
{
Console.WriteLine(PathEx.Message);
}
}
}
open System
open System.IO
try
let dirPath = @"\\archives\2009\reports"
let dirs =
Directory.EnumerateDirectories(dirPath, "dv_*")
|> Seq.cache
// Show results.
for dir in dirs do
// Remove path information from string.
printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
printfn $"{Seq.length dirs} directories found."
// Optionally create a list collection.
let workDirs = Seq.toList dirs
()
with
| :? UnauthorizedAccessException as uaEx ->
printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Module Module1
Sub Main()
Try
Dim dirPath As String = "\\archives\2009\reports"
' LINQ query.
Dim dirs = From folder In _
Directory.EnumerateDirectories(dirPath, "dv_*")
For Each folder In dirs
' Remove path infomration from string.
Console.WriteLine("{0}", _
folder.Substring(folder.LastIndexOf("\") + 1))
Next
Console.WriteLine("{0} directories found.", _
dirs.Count.ToString())
' Optionally create a List collection.
Dim workDirs As List(Of String) = New List(Of String)
Catch UAEx As UnauthorizedAccessException
Console.WriteLine(UAEx.Message)
Catch PathEx As PathTooLongException
Console.WriteLine(PathEx.Message)
End Try
End Sub
End Module
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。 searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることも、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを含めることも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
相対パスまたは絶対パス情報は path
、 パラメーターで指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。これは、 メソッドを GetCurrentDirectory 使用して判断できます。 返されるディレクトリ名の前には、 パラメーターで指定した値が path
付きます。 たとえば、 パラメーターに path
相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
メソッドと GetDirectories メソッドはEnumerateDirectories次のように異なります。を使用EnumerateDirectoriesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetDirectoriesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの を GetEnumerator 呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String, EnumerationOptions)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定したパス内にあり、検索パターンと一致するディレクトリの完全名の列挙可能なコレクションを返します。必要に応じて、サブディレクトリを検索します。
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateDirectories : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of String)
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- enumerationOptions
- EnumerationOptions
使用する検索と列挙の構成を記述するオブジェクト。
戻り値
path
で指定したディレクトリ内にあり、指定した検索パターンおよび列挙オプションと一致する、ディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
- または -
searchPattern
には有効なパターンが含まれません。
path
または searchPattern
が null
です。
searchOption
は正しい SearchOption 値ではありません。
たとえば、マップされていないドライブへの参照など、path
は無効です。
path
はファイル名です。
指定されたパス、ファイル名、または結合は、システム定義の最大長を超えています。
呼び出し元に、必要なアクセス許可がありません。
呼び出し元に、必要なアクセス許可がありません。
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。 searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることも、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを含めることも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
相対パスまたは絶対パス情報は path
、 パラメーターで指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。これは、 メソッドを GetCurrentDirectory 使用して判断できます。 返されるディレクトリ名の前には、 パラメーターで指定した値が path
付きます。 たとえば、 パラメーターに path
相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
メソッドと GetDirectories メソッドはEnumerateDirectories次のように異なります。を使用EnumerateDirectoriesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetDirectoriesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの を GetEnumerator 呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String, SearchOption)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定されたパスから、検索パターンに一致するディレクトリの完全名から成る、列挙可能なコレクションを返します。オプションでサブディレクトリを検索対象にできます。
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateDirectories : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of String)
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- searchOption
- SearchOption
検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。 既定値は TopDirectoryOnly です。
戻り値
path
で指定したディレクトリ内にあり、指定した検索パターンおよび検索オプションと一致する、ディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
2.1 より前のバージョンの.NET Frameworkと .NET Core: path
は長さ 0 の文字列、空白のみを含む、または無効な文字が含まれています。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
- または -
searchPattern
には有効なパターンが含まれません。
searchOption
は正しい SearchOption 値ではありません。
たとえば、マップされていないドライブへの参照など、path
は無効です。
path
はファイル名です。
指定されたパス、ファイル名、または結合は、システム定義の最大長を超えています。
呼び出し元に、必要なアクセス許可がありません。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、指定した検索パターンに一致する指定したパス内のディレクトリを列挙します。 パラメーターを searchOption
使用して、すべてのサブディレクトリを検索に含める必要があることを指定します。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
private static void Main(string[] args)
{
try
{
string dirPath = @"\\archives\2009\reports";
// LINQ query.
var dirs = from dir in
Directory.EnumerateDirectories(dirPath, "dv_*",
SearchOption.AllDirectories)
select dir;
// Show results.
foreach (var dir in dirs)
{
// Remove path information from string.
Console.WriteLine("{0}",
dir.Substring(dir.LastIndexOf("\\") + 1));
}
Console.WriteLine("{0} directories found.",
dirs.Count<string>().ToString());
// Optionally create a List collection.
List<string> workDirs = new List<string>(dirs);
}
catch (UnauthorizedAccessException UAEx)
{
Console.WriteLine(UAEx.Message);
}
catch (PathTooLongException PathEx)
{
Console.WriteLine(PathEx.Message);
}
}
}
open System
open System.IO
try
let dirPath = @"\\archives\2009\reports"
let dirs =
Directory.EnumerateDirectories(dirPath, "dv_*", SearchOption.AllDirectories)
|> Seq.cache
// Show results.
for dir in dirs do
// Remove path information from string.
printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
printfn $"{Seq.length dirs} directories found."
// Optionally create a List collection.
let workDirs = Seq.toList dirs
()
with
| :? UnauthorizedAccessException as uaEx ->
printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Module Module1
Sub Main()
Try
Dim dirPath As String = "\\archives\2009\reports"
' LINQ query.
Dim dirs = From folder In _
Directory.EnumerateDirectories(dirPath, "dv_*", _
SearchOption.AllDirectories)
For Each folder In dirs
' Remove path infomration from string.
Console.WriteLine("{0}", _
folder.Substring(folder.LastIndexOf("\") + 1))
Next
Console.WriteLine("{0} directories found.", _
dirs.Count.ToString())
' Optionally create a List collection.
Dim workDirs As List(Of String) = New List(Of String)
Catch UAEx As UnauthorizedAccessException
Console.WriteLine(UAEx.Message)
Catch PathEx As PathTooLongException
Console.WriteLine(PathEx.Message)
End Try
End Sub
End Module
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。 searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることも、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを含めることも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
相対パスまたは絶対パス情報は path
、 パラメーターで指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。これは、 メソッドを GetCurrentDirectory 使用して判断できます。 返されるディレクトリ名の前には、 パラメーターで指定した値が path
付きます。 たとえば、 パラメーターに path
相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
メソッドと GetDirectories メソッドはEnumerateDirectories次のように異なります。を使用EnumerateDirectoriesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetDirectoriesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの を GetEnumerator 呼び出すたびに、新しい列挙が開始されます。
適用対象
.NET