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 'Main
End Class 'GetDirectoriesTest

備註

如果沒有子目錄,這個方法會傳回空陣列。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.

傳回

DirectoryInfo 型別的陣列,符合 searchPatternAn array of type DirectoryInfo matching searchPattern.

例外狀況

searchPattern 包含一或多個 GetInvalidPathChars() 方法所定義的無效字元。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

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) 該位置中的零或多個字元。Zero or more characters in that position.
?? (問號)(question mark) 該位置中的零或一個字元。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". ".". 字串 "s*" 會path搜尋開頭為字母 "s" 的所有名稱。 searchPatternThe 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

其中一個列舉值,指定搜尋作業應該只包含目前目錄還是包含所有子目錄。One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories.

傳回

DirectoryInfo 型別的陣列,符合 searchPatternAn array of type DirectoryInfo matching searchPattern.

例外狀況

searchPattern 包含一或多個 GetInvalidPathChars() 方法所定義的無效字元。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.

封裝在 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) 該位置中的零或多個字元。Zero or more characters in that position.
?? (問號)(question mark) 該位置中的零或一個字元。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". ".". 字串 "s*" 會path搜尋開頭為字母 "s" 的所有名稱。 searchPatternThe 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

另請參閱

適用於