語言

DirectoryInfo.GetDirectories 方法

定義

回傳目前目錄的子目錄。

多載

名稱 Description
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

搜尋字串用來與目錄名稱相符。 此參數可包含有效的文字路徑與通配符(* 與 ?)字元,但不支援正則表達式。

傳回

一個類型 DirectoryInfo 匹配 searchPattern的陣列。

例外狀況

.NET Framework 與 .NET Core 版本早於 2.1: searchPattern 包含一個或多個由方法定義 GetInvalidPathChars() 的無效字元。

searchPattern 是 null。

封裝在 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

萬用字元指定器 比對
* (星號) 沒有或多個角色處於那個位置。
? (問號) 那個位置沒有角色。

除了萬用卡以外的角色,都是字面上的字面角色。 例如,字串「*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

一個描述搜尋與列舉配置的物件。

傳回

一個型別DirectoryInfo匹配searchPattern的陣列。enumerationOptions

例外狀況

.NET Framework 與 .NET Core 版本早於 2.1: searchPattern 包含一個或多個由方法定義 GetInvalidPathChars() 的無效字元。

searchPattern 是 null。

封裝在 DirectoryInfo 物件中的路徑無效(例如,它位於未映射的磁碟上)。

來電者沒有所需的權限。

備註

searchPattern 它可以是字面字元和萬用字元的組合,但它不支援正則表達式。 以下允許的萬用字元規定符。searchPattern

萬用字元指定器 比對
* (星號) 沒有或多個角色處於那個位置。
? (問號) 那個位置沒有角色。

除了萬用卡以外的角色,都是字面上的字面角色。 例如,字串「*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

列舉值之一,指定搜尋操作應只包含目前目錄還是所有子目錄。

傳回

一個類型 DirectoryInfo 匹配 searchPattern的陣列。

例外狀況

.NET Framework 與 .NET Core 版本早於 2.1: searchPattern 包含一個或多個由方法定義 GetInvalidPathChars() 的無效字元。

searchPattern 是 null。

searchOption 不是一個有效的 SearchOption 值。

封裝在 DirectoryInfo 物件中的路徑無效(例如,它位於未映射的磁碟上)。

來電者沒有所需的權限。

範例

以下範例列出所有以字母「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

萬用字元指定器 比對
* (星號) 沒有或多個角色處於那個位置。
? (問號) 那個位置沒有角色。

除了萬用卡以外的角色,都是字面上的字面角色。 例如,字串「*t」搜尋所有以字母「t」結尾的名字。 ". searchPattern字串「s*」搜尋所有以字母「s」開頭的path名稱。

若無子目錄,或無子目錄與參數相符 searchPattern ,此方法回傳空陣列。

此方法預先填充以下 DirectoryInfo 屬性的值:

另請參閱

適用於