DirectoryInfo.GetDirectories メソッド

定義

現在のディレクトリのサブディレクトリを返します。

オーバーロード

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()含まれています。

searchPatternnullです。

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

使用する検索と列挙の構成を記述するオブジェクト。

戻り値

searchPatternenumerationOptions に一致する DirectoryInfo 型の配列。

例外

.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: searchPattern メソッドによって定義された 1 つ以上の無効な文字がGetInvalidPathChars()含まれています。

searchPatternnullです。

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()含まれています。

searchPatternnullです。

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 のプロパティの値を事前に設定します。

こちらもご覧ください

適用対象