DirectoryInfo.GetDirectories メソッド

定義

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

オーバーロード

名前 説明
GetDirectories()

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

GetDirectories(String)

指定された検索条件に一致する現在の DirectoryInfo 内のディレクトリの配列を返します。

GetDirectories(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する現在の DirectoryInfo 内のディレクトリの配列を返します。

GetDirectories(String, SearchOption)

指定した検索条件に一致し、値を使用してサブディレクトリを検索するかどうかを判断する現在の DirectoryInfo 内のディレクトリの配列を返します。

GetDirectories()

ソース:
DirectoryInfo.cs
ソース:
DirectoryInfo.cs
ソース:
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 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.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

ディレクトリの名前と照合する検索文字列。 このパラメーターには、有効なリテラル パスとワイルドカード (* および ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。

返品

一致するDirectoryInfosearchPattern型の配列。

例外

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

searchPatternnullです。

DirectoryInfo オブジェクトにカプセル化されたパスが無効です (たとえば、マップされていないドライブ上にあります)。

呼び出し元に必要なアクセス許可がありません。

次の例では、指定した文字を含むパス内のディレクトリをカウントします。

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.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

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

返品

一致するDirectoryInfosearchPatternenumerationOptions型の配列。

例外

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

searchPatternnullです。

DirectoryInfo オブジェクトにカプセル化されたパスが無効です (たとえば、マップされていないドライブ上にあります)。

呼び出し元に必要なアクセス許可がありません。

注釈

searchPattern にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 searchPatternでは、次のワイルドカード指定子を使用できます。

ワイルドカード指定子 一致
* (アスタリスク) その位置の 0 個以上の文字。
? (疑問符) その位置の 0 文字または 1 文字。

ワイルドカード以外の文字はリテラル文字です。 たとえば、文字列 "*t" は文字 "t" で終わるすべての名前を検索します。 ". searchPattern文字列 "s*" は、文字 "s" で始まるpath内のすべての名前を検索します。

このメソッドは、次の DirectoryInfo プロパティの値を事前に設定します。

適用対象

GetDirectories(String, SearchOption)

ソース:
DirectoryInfo.cs
ソース:
DirectoryInfo.cs
ソース:
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 つ。

返品

一致するDirectoryInfosearchPattern型の配列。

例外

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

searchPatternnullです。

searchOption が有効な SearchOption 値ではありません。

DirectoryInfo オブジェクトにカプセル化されたパスが無効です (たとえば、マップされていないドライブ上にあります)。

呼び出し元に必要なアクセス許可がありません。

次の例では、"c:\" の文字 "c" で始まるすべてのディレクトリとファイルを一覧表示します。

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

こちらもご覧ください

適用対象