DirectoryInfo.GetDirectories DirectoryInfo.GetDirectories DirectoryInfo.GetDirectories DirectoryInfo.GetDirectories Method

定義

現在のディレクトリのサブディレクトリを返します。Returns the subdirectories of the current directory.

オーバーロード

GetDirectories() GetDirectories() GetDirectories() GetDirectories()

現在のディレクトリのサブディレクトリを返します。Returns the subdirectories of the current directory.

GetDirectories(String) GetDirectories(String) GetDirectories(String) GetDirectories(String)

現在の DirectoryInfo 内にあり、指定した検索基準に一致するディレクトリの配列を返します。Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions) GetDirectories(String, EnumerationOptions) GetDirectories(String, EnumerationOptions)
GetDirectories(String, SearchOption) GetDirectories(String, SearchOption) GetDirectories(String, SearchOption)

現在の DirectoryInfo 内にある、指定した検索条件に一致し、サブディレクトリを検索するかどうかを決定する値を持つディレクトリの配列を返します。Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

GetDirectories() GetDirectories() GetDirectories() GetDirectories()

現在のディレクトリのサブディレクトリを返します。Returns the subdirectories of the current directory.

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 オブジェクトの配列。An array of DirectoryInfo objects.

例外

DirectoryInfo オブジェクトにカプセル化されているパスが無効です (割り当てられていないドライブが指定されている場合など)。The path encapsulated in the DirectoryInfo object is invalid, such as being on an unmapped drive.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、ルートディレクトリ内のすべてのディレクトリを取得し、ディレクトリ名を表示します。The following example retrieves all the directories in the root directory and displays the directory names.

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);
    }
}
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

注釈

サブディレクトリが存在しない場合、このメソッドは空の配列を返します。If there are no subdirectories, this method returns an empty array. このメソッドは再帰的ではありません。This method is not recursive.

このメソッドは、次DirectoryInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following DirectoryInfo properties:

セキュリティ

FileIOPermission
を参照してください。for reading directories. 関連付けられた列挙型:ReadAssociated enumeration: Read

こちらもご覧ください

GetDirectories(String) GetDirectories(String) GetDirectories(String) GetDirectories(String)

現在の DirectoryInfo 内にあり、指定した検索基準に一致するディレクトリの配列を返します。Returns an array of directories in the current DirectoryInfo matching the given search criteria.

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

ディレクトリの名前と照合する検索文字列。The search string to match against the names of directories. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

戻り値

searchPattern に一致する DirectoryInfo 型の配列。An array of type DirectoryInfo matching searchPattern.

例外

searchPattern に、GetInvalidPathChars() メソッドによって定義された 1 つ以上の無効な文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnull です。searchPattern is null.

DirectoryInfo オブジェクト内のカプセル化されたパスが正しくありません (たとえば、マップされていないドライブにあるなど)。The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、指定された文字を含むパス内のディレクトリをカウントします。The following example counts the directories in a path that contain the specified letter.

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());
        }
    }
}
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 can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

このメソッドは、次DirectoryInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following DirectoryInfo properties:

セキュリティ

FileIOPermission
ファイルとディレクトリからの読み取り、およびパスへのアクセスに使用します。for reading from files and directories and for access to the path. 関連付けられReadた列挙型:、PathDiscoveryAssociated enumerations: Read, PathDiscovery

こちらもご覧ください

GetDirectories(String, EnumerationOptions) GetDirectories(String, EnumerationOptions) GetDirectories(String, EnumerationOptions)

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[]

パラメーター

searchPattern
String String String String

戻り値

GetDirectories(String, SearchOption) GetDirectories(String, SearchOption) GetDirectories(String, SearchOption)

現在の DirectoryInfo 内にある、指定した検索条件に一致し、サブディレクトリを検索するかどうかを決定する値を持つディレクトリの配列を返します。Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

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[]

パラメーター

searchPattern
String String String String

ディレクトリの名前と照合する検索文字列。The search string to match against the names of directories. このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption SearchOption SearchOption SearchOption

検索操作に現在のディレクトリのみを含めるのか、またはすべてのサブディレクトリを含めるのかを指定する列挙値の 1 つ。One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories.

戻り値

searchPattern に一致する DirectoryInfo 型の配列。An array of type DirectoryInfo matching searchPattern.

例外

searchPattern に、GetInvalidPathChars() メソッドによって定義された 1 つ以上の無効な文字が含まれています。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

searchPatternnull です。searchPattern is null.

searchOption は有効な SearchOption 値ではありません。searchOption is not a valid SearchOption value.

DirectoryInfo オブジェクトでカプセル化されたパスが無効です (割り当てられていないドライブであるなど)。The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).

呼び出し元に、必要なアクセス許可がありません。The caller does not have the required permission.

次の例では、"c:\" の文字 "c" で始まるすべてのディレクトリとファイルを一覧表示します。The following example lists all of the directories and files that begin with the letter "c" in "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()
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 can be a combination of literal and wildcard characters, but it doesn't support regular expressions. searchPatternは、次のワイルドカード指定子を使用できます。The following wildcard specifiers are permitted in searchPattern.

ワイルドカード指定子Wildcard specifier 一致件数Matches
* (アスタリスク)* (asterisk) その位置に0個以上の文字が含まれています。Zero or more characters in that position.
?? (疑問符)(question mark) その位置に0個または1個の文字。Zero or one character in that position.

ワイルドカード以外の文字はリテラル文字です。Characters other than the wildcard are literal characters. たとえば、"* t" という文字列は、末尾に文字 "t" が付いているすべての名前を検索します。For example, the string "*t" searches for all names in ending with the letter "t". ".". 文字列searchPattern "s*" は、文字 "s" pathで始まるすべての名前を検索します。The searchPattern string "s*" searches for all names in path beginning with the letter "s".

サブディレクトリが存在しない場合、またはパラメーター searchPatternに一致するサブディレクトリがない場合、このメソッドは空の配列を返します。If there are no subdirectories, or no subdirectories match the searchPattern parameter, this method returns an empty array.

このメソッドは、次DirectoryInfoのプロパティの値を事前に設定します。This method pre-populates the values of the following DirectoryInfo properties:

セキュリティ

FileIOPermission
ファイルとディレクトリからの読み取り、およびパスへのアクセスに使用します。for reading from files and directories and for access to the path. 関連付けられReadた列挙型:、PathDiscoveryAssociated enumerations: Read, PathDiscovery

こちらもご覧ください

適用対象