DirectoryInfo.GetDirectories メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のディレクトリのサブディレクトリを返します。
オーバーロード
GetDirectories() |
現在のディレクトリのサブディレクトリを返します。 |
GetDirectories(String) |
現在の DirectoryInfo 内にあり、指定した検索基準に一致するディレクトリの配列を返します。 |
GetDirectories(String, EnumerationOptions) |
指定した検索パターンと列挙オプションに一致する、現在の DirectoryInfo 内のディレクトリの配列を返します。 |
GetDirectories(String, SearchOption) |
現在の DirectoryInfo 内にある、指定した検索条件に一致し、サブディレクトリを検索するかどうかを決定する値を持つディレクトリの配列を返します。 |
GetDirectories()
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
現在のディレクトリのサブディレクトリを返します。
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 オブジェクト内のカプセル化されたパスが有効ではありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、ルート ディレクトリ内のすべてのディレクトリを取得し、ディレクトリ名を表示します。
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);
}
}
open System.IO
// Make a reference to a directory.
let di = DirectoryInfo "c:\\"
// Get a reference to each directory in that directory.
let diArr = di.GetDirectories()
// Display the names of the directories.
for dri in diArr do
printfn $"{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
注釈
サブディレクトリがない場合、このメソッドは空の配列を返します。 このメソッドは再帰的ではありません。
このメソッドは、次 DirectoryInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
GetDirectories(String)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
現在の DirectoryInfo 内にあり、指定した検索基準に一致するディレクトリの配列を返します。
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
ディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
戻り値
searchPattern
に一致する DirectoryInfo
型の配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
DirectoryInfo
オブジェクト内のカプセル化されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、指定した文字を含むパス内のディレクトリをカウントします。
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());
}
}
}
open System.IO
try
let di = DirectoryInfo @"c:\"
// Get only subdirectories that contain the letter "p."
let dirs = di.GetDirectories "*p*"
printfn $"The number of directories containing the letter p is {dirs.Length}."
for diNext in dirs do
printfn $"The number of files in {diNext} is {diNext.GetFiles().Length}"
with e ->
printfn $"The process failed: {e}"
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
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
このメソッドは、次 DirectoryInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
GetDirectories(String, EnumerationOptions)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
指定した検索パターンと列挙オプションに一致する、現在の DirectoryInfo 内のディレクトリの配列を返します。
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
ディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- enumerationOptions
- EnumerationOptions
使用する検索と列挙の構成を記述するオブジェクト。
戻り値
searchPattern
と enumerationOptions
に一致する DirectoryInfo
型の配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
DirectoryInfo
オブジェクト内のカプセル化されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
注釈
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
このメソッドは、次 DirectoryInfo のプロパティの値を事前に設定します。
適用対象
GetDirectories(String, SearchOption)
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
- ソース:
- DirectoryInfo.cs
現在の DirectoryInfo 内にある、指定した検索条件に一致し、サブディレクトリを検索するかどうかを決定する値を持つディレクトリの配列を返します。
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
ディレクトリの名前と照合する検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- searchOption
- SearchOption
検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。
戻り値
searchPattern
に一致する DirectoryInfo
型の配列。
例外
.NET Frameworkおよび .NET Core バージョンが 2.1 より前の場合: searchPattern
メソッドで定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。
searchPattern
が null
です。
searchOption
は正しい SearchOption 値ではありません。
DirectoryInfo
オブジェクト内のカプセル化されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。
呼び出し元に、必要なアクセス許可がありません。
例
次の例では、"c:\" の文字 "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()
open System.IO
// Specify the directory you want to manipulate.
let path = @"c:\"
let searchPattern = "c*"
let di = DirectoryInfo path
let directories = di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)
let files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)
printfn $"Directories that begin with the letter \"c\" in {path}"
for dir in directories do
printfn $"{dir.FullName,-25} {dir.LastWriteTime,25}"
printfn $"\nFiles that begin with the letter \"c\" in {path}"
for file in files do
printfn $"{file.Name,-25} {file.LastWriteTime,25}"
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
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 0 文字または 1 文字。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
サブディレクトリがない場合、または パラメーターに searchPattern
一致するサブディレクトリがない場合、このメソッドは空の配列を返します。
このメソッドは、次 DirectoryInfo のプロパティの値を事前に設定します。
こちらもご覧ください
適用対象
.NET