Directory.EnumerateDirectories メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した条件を満たすディレクトリの完全名の列挙可能なコレクションを返します。
オーバーロード
| 名前 | 説明 |
|---|---|
| EnumerateDirectories(String) |
指定したパス内のディレクトリの完全名の列挙可能なコレクションを返します。 |
| EnumerateDirectories(String, String) |
指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返します。 |
| EnumerateDirectories(String, String, EnumerationOptions) |
指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。 |
| EnumerateDirectories(String, String, SearchOption) |
指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。 |
EnumerateDirectories(String)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- 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で指定されたディレクトリ内のディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
.NET Framework および .NET Core バージョンが 2.1 より前の場合: 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 パラメーターに相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
EnumerateDirectoriesメソッドとGetDirectoriesメソッドは次のように異なります。EnumerateDirectoriesを使用すると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。GetDirectoriesを使用する場合は、配列にアクセスする前に、名前の配列全体が返されるのを待つ必要があります。 そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの GetEnumerator を呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- 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 で指定されたディレクトリ内のディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
.NET Framework および .NET Core バージョンが 2.1 より前の場合: 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 パラメーターに相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
EnumerateDirectoriesメソッドとGetDirectoriesメソッドは次のように異なります。EnumerateDirectoriesを使用すると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。GetDirectoriesを使用する場合は、配列にアクセスする前に、名前の配列全体が返されるのを待つ必要があります。 そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの GetEnumerator を呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String, EnumerationOptions)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- 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 で指定されたディレクトリ内のディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
.NET Framework および .NET Core バージョンが 2.1 より前の場合: path は長さ 0 の文字列で、空白のみを含むか、無効な文字を含みます。
GetInvalidPathChars() メソッドを使用して、無効な文字のクエリを実行できます。
-又は-
searchPattern には有効なパターンが含まれていません。
path または searchPattern が null。
path は、マップされていないドライブを参照するなど、無効です。
path はファイル名です。
指定したパス、ファイル名、または組み合わせが、システム定義の最大長を超えています。
呼び出し元に必要なアクセス許可がありません。
呼び出し元に必要なアクセス許可がありません。
注釈
searchPattern にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。
searchPatternでは、次のワイルドカード指定子を使用できます。
| ワイルドカード指定子 | 一致 |
|---|---|
| * (アスタリスク) | その位置の 0 個以上の文字。 |
| ? (疑問符) | その位置に 1 文字だけ入力します。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern 文字列 "*t" は、文字 "t" で終わる path 内のすべての名前を検索します。
searchPattern文字列 "s*" は、文字 "s" で始まるpath内のすべての名前を検索します。
searchPattern は、2 つのピリオド ("..") で終わることはできません。または、2 つのピリオド ("..") の後に DirectorySeparatorChar または AltDirectorySeparatorCharを含めることはできません。また、無効な文字を含めることもできます。
GetInvalidPathChars メソッドを使用して、無効な文字のクエリを実行できます。
path パラメーターには相対パス情報または絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。これは、 GetCurrentDirectory メソッドを使用して判断できます。 返されるディレクトリ名には、 path パラメーターで指定した値がプレフィックスとして付けられます。 たとえば、 path パラメーターに相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
EnumerateDirectoriesメソッドとGetDirectoriesメソッドは次のように異なります。EnumerateDirectoriesを使用すると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。GetDirectoriesを使用する場合は、配列にアクセスする前に、名前の配列全体が返されるのを待つ必要があります。 そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの GetEnumerator を呼び出すたびに、新しい列挙が開始されます。
適用対象
EnumerateDirectories(String, String, SearchOption)
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- 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 で指定されたディレクトリ内のディレクトリの完全名 (パスを含む) の列挙可能なコレクション。
例外
.NET Framework および .NET Core バージョンが 2.1 より前の場合: 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 パラメーターに相対パスを指定した場合、返されるディレクトリ名には相対パスが含まれます。
EnumerateDirectoriesメソッドとGetDirectoriesメソッドは次のように異なります。EnumerateDirectoriesを使用すると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。GetDirectoriesを使用する場合は、配列にアクセスする前に、名前の配列全体が返されるのを待つ必要があります。 そのため、多くのファイルやディレクトリを操作する場合は、 EnumerateDirectories の方が効率的です。
返されたコレクションはキャッシュされません。コレクションの GetEnumerator を呼び出すたびに、新しい列挙が開始されます。