Directory.GetDirectories Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Retourneert de namen van submappen die voldoen aan opgegeven criteria.
Overloads
| Name | Description |
|---|---|
| GetDirectories(String, String, SearchOption) |
Retourneert de namen van de submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon in de opgegeven map en doorzoekt eventueel submappen. |
| GetDirectories(String, String, EnumerationOptions) |
Retourneert de namen van submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties in de opgegeven map. |
| GetDirectories(String) |
Retourneert de namen van submappen (inclusief hun paden) in de opgegeven map. |
| GetDirectories(String, String) |
Retourneert de namen van submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon in de opgegeven map. |
GetDirectories(String, String, SearchOption)
Retourneert de namen van de submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon in de opgegeven map en doorzoekt eventueel submappen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetDirectories(string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetDirectories : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parameters
- path
- String
Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van submappen in path. Deze parameter kan een combinatie van geldige letterlijke en jokertekens bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- searchOption
- SearchOption
Een van de opsommingswaarden die aangeeft of de zoekbewerking alle submappen of alleen de huidige map moet bevatten.
Retouren
Een matrix van de volledige namen (inclusief paden) van de submappen die voldoen aan de opgegeven criteria of een lege matrix als er geen mappen worden gevonden.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
– of –
searchPattern bevat geen geldig patroon.
path of searchPattern is null.
searchOption is geen geldige SearchOption waarde.
De beller heeft niet de vereiste machtiging.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path is een bestandsnaam.
– of –
Bestand of map is beschadigd en onleesbaar (bijvoorbeeld: ongeldige eerste toewijzingseenheid van een FAT32-partitie).
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld wordt het aantal mappen geteld dat begint met de opgegeven letter in een pad. Alleen de map op het hoogste niveau wordt doorzocht.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly);
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
let dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly)
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
Dim dirs As String() = Directory.GetDirectories("c:\", "p*", SearchOption.TopDirectoryOnly)
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Opmerkingen
De path parameter kan relatieve of absolute padinformatie opgeven en is niet hoofdlettergevoelig. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Precies één teken in die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.
De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Zie ook
- GetCurrentDirectory()
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
GetDirectories(String, String, EnumerationOptions)
Retourneert de namen van submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties in de opgegeven map.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetDirectories : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parameters
- path
- String
Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van submappen in path. Deze parameter kan een combinatie van geldige letterlijke en jokertekens bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- enumerationOptions
- EnumerationOptions
Een object dat de zoek- en opsommingsconfiguratie beschrijft die moet worden gebruikt.
Retouren
Een matrix van de volledige namen (inclusief paden) van de submappen die overeenkomen met het zoekpatroon en de opsommingsopties in de opgegeven map, of een lege matrix als er geen mappen worden gevonden.
Uitzonderingen
De beller heeft niet de vereiste machtiging.
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van GetInvalidPathChars().
– of –
searchPattern bevat geen geldig patroon.
path of searchPattern is null.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path is een bestandsnaam.
– of –
Bestand of map is beschadigd en onleesbaar (bijvoorbeeld: ongeldige eerste toewijzingseenheid van een FAT32-partitie).
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Opmerkingen
Met deze methode worden alle submappen rechtstreeks onder de opgegeven map geretourneerd die overeenkomen met het opgegeven zoekpatroon. Als de opgegeven map geen submappen heeft of geen submappen overeenkomen met de searchPattern parameter, retourneert deze methode een lege matrix. Alleen de bovenste map wordt doorzocht. Als u ook in de submappen wilt zoeken, gebruikt u de GetDirectories(String, String, SearchOption) methode en geeft u AllDirectories deze op in de searchOption parameter.
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Precies één teken in die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.
De path parameter kan relatieve of absolute padinformatie opgeven en is niet hoofdlettergevoelig. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Van toepassing op
GetDirectories(String)
Retourneert de namen van submappen (inclusief hun paden) in de opgegeven map.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path);
public static string[] GetDirectories(string path);
static member GetDirectories : string -> string[]
Public Shared Function GetDirectories (path As String) As String()
Parameters
- path
- String
Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.
Retouren
Een matrix van de volledige namen (inclusief paden) van submappen in het opgegeven pad of een lege matrix als er geen mappen worden gevonden.
Uitzonderingen
De beller heeft niet de vereiste machtiging.
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
path is null.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path is een bestandsnaam.
– of –
Bestand of map is beschadigd en onleesbaar (bijvoorbeeld: ongeldige eerste toewijzingseenheid van een FAT32-partitie).
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld wordt een matrix met bestands- of mapnamen op de opdrachtregel gebruikt, wordt bepaald wat voor soort naam het is en wordt deze op de juiste manier verwerkt.
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main(string[] args)
{
foreach(string path in args)
{
if(File.Exists(path))
{
// This path is a file
ProcessFile(path);
}
else if(Directory.Exists(path))
{
// This path is a directory
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.", path);
}
}
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
public static void ProcessDirectory(string targetDirectory)
{
// Process the list of files found in the directory.
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
// Recurse into subdirectories of this directory.
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
// Insert logic for processing found files here.
public static void ProcessFile(string path)
{
Console.WriteLine("Processed file '{0}'.", path);
}
}
module RecursiveFileProcessor
open System.IO
// Insert logic for processing found files here.
let processFile path =
printfn $"Processed file '%s{path}'."
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
// Process the list of files found in the directory.
let fileEntries = Directory.GetFiles targetDirectory
for fileName in fileEntries do
processFile fileName
// Recurse into subdirectories of this directory.
let subdirectoryEntries = Directory.GetDirectories targetDirectory
for subdirectory in subdirectoryEntries do
processDirectory subdirectory
[<EntryPoint>]
let main args =
for path in args do
if File.Exists path then
// This path is a file
processFile path
elif Directory.Exists path then
// This path is a directory
processDirectory path
else
printfn $"{path} is not a valid file or directory."
0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists
Imports System.IO
Imports System.Collections
Public Class RecursiveFileProcessor
Public Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub
' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)
Next fileName
Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectory
End Sub
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub
End Class
Opmerkingen
Deze methode is identiek aan GetDirectories(String, String) het sterretje (*) dat is opgegeven als het zoekpatroon, zodat alle submappen worden geretourneerd. Als u wilt zoeken in submappen, gebruikt u de GetDirectories(String, String, SearchOption) methode, waarmee u een zoekopdracht van submappen met de searchOption parameter kunt opgeven.
De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.
De path parameter kan relatieve of absolute padinformatie opgeven. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
De namen die door deze methode worden geretourneerd, worden voorafgegaan door de mapgegevens in path.
De hoofdlettergevoeligheid van de path parameter komt overeen met die van het bestandssysteem waarop de code wordt uitgevoerd. Het is bijvoorbeeld niet hoofdlettergevoelig voor NTFS (het standaardbestandssysteem Windows) en hoofdlettergevoelig op Linux-bestandssystemen.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Zie ook
- GetCurrentDirectory()
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
GetDirectories(String, String)
Retourneert de namen van submappen (inclusief hun paden) die overeenkomen met het opgegeven zoekpatroon in de opgegeven map.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern);
public static string[] GetDirectories(string path, string searchPattern);
static member GetDirectories : string * string -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String) As String()
Parameters
- path
- String
Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van submappen in path. Deze parameter kan een combinatie van geldige letterlijke en jokertekens bevatten, maar biedt geen ondersteuning voor reguliere expressies.
Retouren
Een matrix van de volledige namen (inclusief paden) van de submappen die overeenkomen met het zoekpatroon in de opgegeven map of een lege matrix als er geen mappen worden gevonden.
Uitzonderingen
De beller heeft niet de vereiste machtiging.
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van GetInvalidPathChars().
– of –
searchPattern bevat geen geldig patroon.
path of searchPattern is null.
Het opgegeven pad, de bestandsnaam of beide overschrijden de door het systeem gedefinieerde maximumlengte.
path is een bestandsnaam.
– of –
Bestand of map is beschadigd en onleesbaar (bijvoorbeeld: ongeldige eerste toewijzingseenheid van een FAT32-partitie).
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld wordt het aantal mappen in een pad geteld dat begint met de opgegeven letter.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get subdirectories that begin with the letter "p."
string[] dirs = Directory.GetDirectories(@"c:\", "p*");
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
// Only get subdirectories that begin with the letter "p."
let dirs = Directory.GetDirectories(@"c:\", "p*")
printfn $"The number of directories starting with p is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
' Only get subdirectories that begin with the letter "p."
Dim dirs As String() = Directory.GetDirectories("c:\", "p*")
Console.WriteLine("The number of directories starting with p is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Opmerkingen
Met deze methode worden alle submappen rechtstreeks onder de opgegeven map geretourneerd die overeenkomen met het opgegeven zoekpatroon. Als de opgegeven map geen submappen heeft of geen submappen overeenkomen met de searchPattern parameter, retourneert deze methode een lege matrix. Alleen de bovenste map wordt doorzocht. Als u ook in de submappen wilt zoeken, gebruikt u de GetDirectories(String, String, SearchOption) methode en geeft u AllDirectories deze op in de searchOption parameter.
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Precies één teken in die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
searchPattern kan niet eindigen in twee perioden ("..") of twee punten ("."), gevolgd door DirectorySeparatorChar of AltDirectorySeparatorChar, noch mogen deze ongeldige tekens bevatten. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars methode.
De path parameter kan relatieve of absolute padinformatie opgeven en is niet hoofdlettergevoelig. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap. Als u de huidige werkmap wilt ophalen, raadpleegt GetCurrentDirectoryu .
De EnumerateDirectories en GetDirectories methoden verschillen als volgt: Wanneer u gebruikt EnumerateDirectories, kunt u beginnen met het inventariseren van de verzameling namen voordat de hele verzameling wordt geretourneerd. Wanneer u deze gebruikt GetDirectories, moet u wachten totdat de hele matrix met namen wordt geretourneerd voordat u toegang hebt tot de matrix. Daarom kan het efficiënter zijn wanneer u met veel bestanden en mappen EnumerateDirectories werkt.
Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.
Zie ook
- GetCurrentDirectory()
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven