Directory.EnumerateDirectories 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 een inventariserbare verzameling volledige namen van mappen die voldoen aan de opgegeven criteria.
Overloads
| Name | Description |
|---|---|
| EnumerateDirectories(String) |
Retourneert een opsommingsbare verzameling map volledige namen in een opgegeven pad. |
| EnumerateDirectories(String, String) |
Hiermee wordt een opsommingsbare verzameling mapnamen geretourneerd die overeenkomen met een zoekpatroon in een opgegeven pad. |
| EnumerateDirectories(String, String, EnumerationOptions) |
Retourneert een opsommingsbare verzameling van de map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt desgewenst submappen. |
| EnumerateDirectories(String, String, SearchOption) |
Retourneert een opsommingsbare verzameling map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt eventueel in submappen. |
EnumerateDirectories(String)
Retourneert een opsommingsbare verzameling map volledige namen in een opgegeven pad.
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path);
static member EnumerateDirectories : string -> seq<string>
Public Shared Function EnumerateDirectories (path As String) As IEnumerable(Of String)
Parameters
- path
- String
Het relatieve of absolute pad naar de map om te zoeken. Deze tekenreeks is niet hoofdlettergevoelig.
Retouren
Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
path is null.
path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.
path is een bestandsnaam.
Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.
De beller heeft niet de vereiste machtiging.
De beller heeft niet de vereiste machtiging.
Voorbeelden
In het volgende voorbeeld worden de mappen op het hoogste niveau in een opgegeven pad opgesomd.
using System;
using System.Collections.Generic;
using System.IO;
class Program
{
private static void Main(string[] args)
{
try
{
// Set a variable to the My Documents path.
string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
List<string> dirs = new List<string>(Directory.EnumerateDirectories(docPath));
foreach (var dir in dirs)
{
Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}");
}
Console.WriteLine($"{dirs.Count} directories found.");
}
catch (UnauthorizedAccessException ex)
{
Console.WriteLine(ex.Message);
}
catch (PathTooLongException ex)
{
Console.WriteLine(ex.Message);
}
}
}
open System
open System.IO
try
// Set a variable to the My Documents path.
let docPath = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments
let dirs = Directory.EnumerateDirectories docPath |> Seq.toList
for dir in dirs do
printfn $"{dir.Substring(dir.LastIndexOf Path.DirectorySeparatorChar + 1)}"
printfn $"{dirs.Length} directories found."
with
| :? UnauthorizedAccessException as ex ->
printfn $"{ex.Message}"
| :? PathTooLongException as ex ->
printfn $"{ex.Message}"
Imports System.Collections.Generic
Imports System.IO
Module Module1
Sub Main()
Try
Dim dirPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))
For Each folder In dirs
Console.WriteLine($"{dir.Substring(dir.LastIndexOf(Path.DirectorySeparatorChar) + 1)}")
Next
Console.WriteLine($"{dirs.Count} directories found.")
Catch ex As UnauthorizedAccessException
Console.WriteLine(ex.Message)
Catch ex As PathTooLongException
Console.WriteLine(ex.Message)
End Try
End Sub
End Module
Opmerkingen
U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.
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 geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.
Van toepassing op
EnumerateDirectories(String, String)
Hiermee wordt een opsommingsbare verzameling mapnamen geretourneerd die overeenkomen met een zoekpatroon in een opgegeven pad.
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern);
static member EnumerateDirectories : string * string -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String) As IEnumerable(Of 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 mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
Retouren
Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met de GetInvalidPathChars() methode.
– of –
searchPattern bevat geen geldig patroon.
path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.
path is een bestandsnaam.
Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.
De beller heeft niet de vereiste machtiging.
De beller heeft niet de vereiste machtiging.
Voorbeelden
In het volgende voorbeeld worden de mappen op het hoogste niveau opgesomd in een opgegeven pad dat overeenkomt met een opgegeven zoekpatroon.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
private static void Main(string[] args)
{
try
{
string dirPath = @"\\archives\2009\reports";
// LINQ query.
var dirs = from dir in
Directory.EnumerateDirectories(dirPath, "dv_*")
select dir;
// Show results.
foreach (var dir in dirs)
{
// Remove path information from string.
Console.WriteLine("{0}",
dir.Substring(dir.LastIndexOf("\\") + 1));
}
Console.WriteLine("{0} directories found.",
dirs.Count<string>().ToString());
// Optionally create a List collection.
List<string> workDirs = new List<string>(dirs);
}
catch (UnauthorizedAccessException UAEx)
{
Console.WriteLine(UAEx.Message);
}
catch (PathTooLongException PathEx)
{
Console.WriteLine(PathEx.Message);
}
}
}
open System
open System.IO
try
let dirPath = @"\\archives\2009\reports"
let dirs =
Directory.EnumerateDirectories(dirPath, "dv_*")
|> Seq.cache
// Show results.
for dir in dirs do
// Remove path information from string.
printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
printfn $"{Seq.length dirs} directories found."
// Optionally create a list collection.
let workDirs = Seq.toList dirs
()
with
| :? UnauthorizedAccessException as uaEx ->
printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Module Module1
Sub Main()
Try
Dim dirPath As String = "\\archives\2009\reports"
' LINQ query.
Dim dirs = From folder In _
Directory.EnumerateDirectories(dirPath, "dv_*")
For Each folder In dirs
' Remove path infomration from string.
Console.WriteLine("{0}", _
folder.Substring(folder.LastIndexOf("\") + 1))
Next
Console.WriteLine("{0} directories found.", _
dirs.Count.ToString())
' Optionally create a List collection.
Dim workDirs As List(Of String) = New List(Of String)
Catch UAEx As UnauthorizedAccessException
Console.WriteLine(UAEx.Message)
Catch PathEx As PathTooLongException
Console.WriteLine(PathEx.Message)
End Try
End Sub
End Module
Opmerkingen
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.
U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.
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 geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.
Van toepassing op
EnumerateDirectories(String, String, EnumerationOptions)
Retourneert een opsommingsbare verzameling van de map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt desgewenst submappen.
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateDirectories : string * string * System.IO.EnumerationOptions -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As IEnumerable(Of 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 mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- enumerationOptions
- EnumerationOptions
Een object dat de zoek- en opsommingsconfiguratie beschrijft die moet worden gebruikt.
Retouren
Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of 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.
path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.
path is een bestandsnaam.
Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.
De beller heeft niet de vereiste machtiging.
De beller heeft niet de vereiste machtiging.
Opmerkingen
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.
U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.
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 geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.
Van toepassing op
EnumerateDirectories(String, String, SearchOption)
Retourneert een opsommingsbare verzameling map volledige namen die overeenkomen met een zoekpatroon in een opgegeven pad en zoekt eventueel in submappen.
public:
static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateDirectories(string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateDirectories : string * string * System.IO.SearchOption -> seq<string>
Public Shared Function EnumerateDirectories (path As String, searchPattern As String, searchOption As SearchOption) As IEnumerable(Of 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 mappen in path. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- searchOption
- SearchOption
Een van de opsommingswaarden die aangeeft of de zoekbewerking alleen de huidige map moet bevatten of alle submappen moet bevatten. De standaardwaarde is TopDirectoryOnly.
Retouren
Een inventariserbare verzameling van de volledige namen (inclusief paden) voor de mappen in de map die is opgegeven door path en die overeenkomen met het opgegeven zoekpatroon en de zoekoptie.
Uitzonderingen
.NET Framework en .NET Core-versies ouder dan 2.1: path is een tekenreeks met lengte nul, bevat alleen witruimte of ongeldige tekens. U kunt een query uitvoeren op ongeldige tekens met behulp van de GetInvalidPathChars() methode.
– of –
searchPattern bevat geen geldig patroon.
searchOption is geen geldige SearchOption waarde.
path is ongeldig, zoals het verwijzen naar een niet-toegewezen station.
path is een bestandsnaam.
Het opgegeven pad, de bestandsnaam of de gecombineerde waarde overschrijdt de door het systeem gedefinieerde maximumlengte.
De beller heeft niet de vereiste machtiging.
De beller heeft niet de vereiste machtiging.
Voorbeelden
In het volgende voorbeeld worden mappen opgesomd in een opgegeven pad dat overeenkomt met een opgegeven zoekpatroon. Hierbij wordt de searchOption parameter gebruikt om op te geven dat alle submappen moeten worden opgenomen in de zoekopdracht.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
private static void Main(string[] args)
{
try
{
string dirPath = @"\\archives\2009\reports";
// LINQ query.
var dirs = from dir in
Directory.EnumerateDirectories(dirPath, "dv_*",
SearchOption.AllDirectories)
select dir;
// Show results.
foreach (var dir in dirs)
{
// Remove path information from string.
Console.WriteLine("{0}",
dir.Substring(dir.LastIndexOf("\\") + 1));
}
Console.WriteLine("{0} directories found.",
dirs.Count<string>().ToString());
// Optionally create a List collection.
List<string> workDirs = new List<string>(dirs);
}
catch (UnauthorizedAccessException UAEx)
{
Console.WriteLine(UAEx.Message);
}
catch (PathTooLongException PathEx)
{
Console.WriteLine(PathEx.Message);
}
}
}
open System
open System.IO
try
let dirPath = @"\\archives\2009\reports"
let dirs =
Directory.EnumerateDirectories(dirPath, "dv_*", SearchOption.AllDirectories)
|> Seq.cache
// Show results.
for dir in dirs do
// Remove path information from string.
printfn $"{dir.Substring(dir.LastIndexOf '\\' + 1)}"
printfn $"{Seq.length dirs} directories found."
// Optionally create a List collection.
let workDirs = Seq.toList dirs
()
with
| :? UnauthorizedAccessException as uaEx ->
printfn $"{uaEx.Message}"
| :? PathTooLongException as pathEx ->
printfn $"{pathEx.Message}"
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Module Module1
Sub Main()
Try
Dim dirPath As String = "\\archives\2009\reports"
' LINQ query.
Dim dirs = From folder In _
Directory.EnumerateDirectories(dirPath, "dv_*", _
SearchOption.AllDirectories)
For Each folder In dirs
' Remove path infomration from string.
Console.WriteLine("{0}", _
folder.Substring(folder.LastIndexOf("\") + 1))
Next
Console.WriteLine("{0} directories found.", _
dirs.Count.ToString())
' Optionally create a List collection.
Dim workDirs As List(Of String) = New List(Of String)
Catch UAEx As UnauthorizedAccessException
Console.WriteLine(UAEx.Message)
Catch PathEx As PathTooLongException
Console.WriteLine(PathEx.Message)
End Try
End Sub
End Module
Opmerkingen
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.
U kunt relatieve of absolute padgegevens opgeven in de path parameter. Relatieve padinformatie wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap, die u kunt bepalen met behulp van de GetCurrentDirectory methode. De geretourneerde mapnamen worden voorafgegaan door de waarde die u hebt opgegeven in de path parameter. Als u bijvoorbeeld een relatief pad in de path parameter opgeeft, bevatten de geretourneerde mapnamen een relatief pad.
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 geretourneerde verzameling wordt niet in de cache opgeslagen; bij elke aanroep van de GetEnumerator verzameling wordt een nieuwe inventarisatie gestart.