DirectoryInfo.GetDirectories Metod

Definition

Returnerar underkatalogerna för den aktuella katalogen.

Överlagringar

Name Description
GetDirectories()

Returnerar underkatalogerna för den aktuella katalogen.

GetDirectories(String)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökvillkoren.

GetDirectories(String, EnumerationOptions)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökmönstret och uppräkningsalternativen.

GetDirectories(String, SearchOption)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar de angivna sökvillkoren och använder ett värde för att avgöra om underkataloger ska sökas igenom.

GetDirectories()

Returnerar underkatalogerna för den aktuella katalogen.

public:
 cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories();
public System.IO.DirectoryInfo[] GetDirectories();
member this.GetDirectories : unit -> System.IO.DirectoryInfo[]
Public Function GetDirectories () As DirectoryInfo()

Returer

En matris med DirectoryInfo objekt.

Undantag

Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig, till exempel på en ommappad enhet.

Anroparen har inte den behörighet som krävs.

Anroparen har inte den behörighet som krävs.

Exempel

I följande exempel hämtas alla kataloger i rotkatalogen och katalognamnen visas.

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

Kommentarer

Om det inte finns några underkataloger returnerar den här metoden en tom matris. Den här metoden är inte rekursiv.

Den här metoden fyller i värdena för följande DirectoryInfo egenskaper i förväg:

Se även

Gäller för

GetDirectories(String)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökvillkoren.

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()

Parametrar

searchPattern
String

Söksträngen som ska matchas mot namnen på kataloger. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.

Returer

En matris av typen DirectoryInfo matchande searchPattern.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: searchPattern innehåller ett eller flera ogiltiga tecken som definierats av metoden GetInvalidPathChars().

searchPattern är null.

Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).

Anroparen har inte den behörighet som krävs.

Exempel

I följande exempel räknas katalogerna i en sökväg som innehåller den angivna bokstaven.

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

Kommentarer

searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.

Jokerteckensspecificerare Matcher
* (asterisk) Noll eller fler tecken i den positionen.
? (frågetecken) Noll eller ett tecken i den positionen.

Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".

Den här metoden fyller i värdena för följande DirectoryInfo egenskaper i förväg:

Se även

Gäller för

GetDirectories(String, EnumerationOptions)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökmönstret och uppräkningsalternativen.

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()

Parametrar

searchPattern
String

Söksträngen som ska matchas mot namnen på kataloger. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.

enumerationOptions
EnumerationOptions

Ett objekt som beskriver den sök- och uppräkningskonfiguration som ska användas.

Returer

En matris av typen DirectoryInfo matchning searchPattern och enumerationOptions.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: searchPattern innehåller ett eller flera ogiltiga tecken som definierats av metoden GetInvalidPathChars().

searchPattern är null.

Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).

Anroparen har inte den behörighet som krävs.

Kommentarer

searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.

Jokerteckensspecificerare Matcher
* (asterisk) Noll eller fler tecken i den positionen.
? (frågetecken) Noll eller ett tecken i den positionen.

Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".

Den här metoden fyller i värdena för följande DirectoryInfo egenskaper i förväg:

Gäller för

GetDirectories(String, SearchOption)

Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar de angivna sökvillkoren och använder ett värde för att avgöra om underkataloger ska sökas igenom.

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()

Parametrar

searchPattern
String

Söksträngen som ska matchas mot namnen på kataloger. Den här parametern kan innehålla en kombination av giltiga teckensökväg och jokertecken (* och ?), men den stöder inte reguljära uttryck.

searchOption
SearchOption

Ett av uppräkningsvärdena som anger om sökåtgärden endast ska innehålla den aktuella katalogen eller alla underkataloger.

Returer

En matris av typen DirectoryInfo matchande searchPattern.

Undantag

.NET Framework- och .NET Core-versioner som är äldre än 2.1: searchPattern innehåller ett eller flera ogiltiga tecken som definierats av metoden GetInvalidPathChars().

searchPattern är null.

searchOption är inte ett giltigt SearchOption värde.

Sökvägen som är inkapslad i DirectoryInfo objektet är ogiltig (den finns till exempel på en ommappad enhet).

Anroparen har inte den behörighet som krävs.

Exempel

I följande exempel visas alla kataloger och filer som börjar med bokstaven "c" i "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

Kommentarer

searchPattern kan vara en kombination av literaltecken och jokertecken, men det stöder inte reguljära uttryck. Följande jokerteckensspecificerare tillåts i searchPattern.

Jokerteckensspecificerare Matcher
* (asterisk) Noll eller fler tecken i den positionen.
? (frågetecken) Noll eller ett tecken i den positionen.

Andra tecken än jokertecknet är literaltecken. Strängen "*t" söker till exempel efter alla namn som slutar med bokstaven "t". ". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".

Om det inte finns några underkataloger, eller om inga underkataloger matchar parametern searchPattern , returnerar den här metoden en tom matris.

Den här metoden fyller i värdena för följande DirectoryInfo egenskaper i förväg:

Se även

Gäller för