Directory.EnumerateDirectories Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar en uppräkningsbar samling med fullständiga katalognamn som uppfyller angivna villkor.
Överlagringar
| Name | Description |
|---|---|
| EnumerateDirectories(String) |
Returnerar en uppräkningsbar samling med fullständiga katalognamn i en angiven sökväg. |
| EnumerateDirectories(String, String) |
Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg. |
| EnumerateDirectories(String, String, EnumerationOptions) |
Returnerar en uppräkningsbar samling med katalogens fullständiga namn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger. |
| EnumerateDirectories(String, String, SearchOption) |
Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt efter underkataloger. |
EnumerateDirectories(String)
Returnerar en uppräkningsbar samling med fullständiga katalognamn i en angiven sökväg.
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)
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
Returer
En uppräkningsbar samling med fullständiga namn (inklusive sökvägar) för katalogerna i katalogen som anges av path.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
path är null.
path är ogiltigt, till exempel refererar till en ommappad enhet.
path är ett filnamn.
Den angivna sökvägen, filnamnet eller kombinerade överskrider den systemdefinierade maximala längden.
Anroparen har inte den behörighet som krävs.
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel räknas de översta katalogerna upp i en angiven sökväg.
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
Kommentarer
Du kan ange relativ eller absolut sökvägsinformation i parametern path . Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen, vilket du kan avgöra med hjälp GetCurrentDirectory av metoden. De returnerade katalognamnen är prefixet med det värde som du angav i parametern path . Om du till exempel anger en relativ sökväg i parametern path innehåller de returnerade katalognamnen en relativ sökväg.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator i samlingen startar en ny uppräkning.
Gäller för
EnumerateDirectories(String, String)
Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg.
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)
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på katalogerna i path. 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 uppräkningsbar samling med fullständiga namn (inklusive sökvägar) för katalogerna i katalogen som anges av path och som matchar det angivna sökmönstret.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ogiltiga tecken. Du kan fråga efter ogiltiga tecken med GetInvalidPathChars() metoden.
-eller-
searchPattern innehåller inget giltigt mönster.
path är ogiltigt, till exempel refererar till en ommappad enhet.
path är ett filnamn.
Den angivna sökvägen, filnamnet eller kombinerade överskrider den systemdefinierade maximala längden.
Anroparen har inte den behörighet som krävs.
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel räknas de översta katalogerna upp i en angiven sökväg som matchar ett angivet sökmönster.
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
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) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Du kan ange relativ eller absolut sökvägsinformation i parametern path . Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen, vilket du kan avgöra med hjälp GetCurrentDirectory av metoden. De returnerade katalognamnen är prefixet med det värde som du angav i parametern path . Om du till exempel anger en relativ sökväg i parametern path innehåller de returnerade katalognamnen en relativ sökväg.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator i samlingen startar en ny uppräkning.
Gäller för
EnumerateDirectories(String, String, EnumerationOptions)
Returnerar en uppräkningsbar samling med katalogens fullständiga namn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger.
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)
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på katalogerna i path. 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 uppräkningsbar samling med fullständiga namn (inklusive sökvägar) för katalogerna i katalogen som anges av path och som matchar det angivna sökmönstret och uppräkningsalternativen.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
searchPattern innehåller inget giltigt mönster.
path eller searchPattern är null.
path är ogiltigt, till exempel refererar till en ommappad enhet.
path är ett filnamn.
Den angivna sökvägen, filnamnet eller kombinerade överskrider den systemdefinierade maximala längden.
Anroparen har inte den behörighet som krävs.
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) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Du kan ange relativ eller absolut sökvägsinformation i parametern path . Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen, vilket du kan avgöra med hjälp GetCurrentDirectory av metoden. De returnerade katalognamnen är prefixet med det värde som du angav i parametern path . Om du till exempel anger en relativ sökväg i parametern path innehåller de returnerade katalognamnen en relativ sökväg.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator i samlingen startar en ny uppräkning.
Gäller för
EnumerateDirectories(String, String, SearchOption)
Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt efter underkataloger.
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)
Parametrar
- path
- String
Den relativa eller absoluta sökvägen till katalogen som ska sökas. Den här strängen är inte skiftlägeskänslig.
- searchPattern
- String
Söksträngen som ska matchas mot namnen på katalogerna i path. 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 ska innehålla alla underkataloger. Standardvärdet är TopDirectoryOnly.
Returer
En uppräkningsbar samling med fullständiga namn (inklusive sökvägar) för katalogerna i katalogen som anges av path och som matchar det angivna sökmönstret och sökalternativet.
Undantag
.NET Framework- och .NET Core-versioner som är äldre än 2.1: path är en sträng med noll längd, innehåller endast tomt utrymme eller innehåller ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars() av metoden .
-eller-
searchPattern innehåller inget giltigt mönster.
searchOption är inte ett giltigt SearchOption värde.
path är ogiltigt, till exempel refererar till en ommappad enhet.
path är ett filnamn.
Den angivna sökvägen, filnamnet eller kombinerade överskrider den systemdefinierade maximala längden.
Anroparen har inte den behörighet som krävs.
Anroparen har inte den behörighet som krävs.
Exempel
I följande exempel räknas kataloger upp i en angiven sökväg som matchar ett angivet sökmönster. Den använder parametern searchOption för att ange att alla underkataloger ska ingå i sökningen.
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
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) | Exakt ett tecken i den positionen. |
Andra tecken än jokertecknet är literaltecken. Strängen searchPattern "*t" söker till exempel efter alla namn som path slutar med bokstaven "t". Strängen searchPattern "s*" söker efter alla namn från path och med bokstaven "s".
searchPattern kan inte sluta i två perioder ("..") eller innehålla två punkter ("..") följt av DirectorySeparatorChar eller AltDirectorySeparatorChar, och kan inte heller innehålla ogiltiga tecken. Du kan fråga efter ogiltiga tecken med hjälp GetInvalidPathChars av metoden .
Du kan ange relativ eller absolut sökvägsinformation i parametern path . Relativ sökvägsinformation tolkas som relativ till den aktuella arbetskatalogen, vilket du kan avgöra med hjälp GetCurrentDirectory av metoden. De returnerade katalognamnen är prefixet med det värde som du angav i parametern path . Om du till exempel anger en relativ sökväg i parametern path innehåller de returnerade katalognamnen en relativ sökväg.
Metoderna EnumerateDirectories och GetDirectories skiljer sig åt på följande sätt: När du använder EnumerateDirectorieskan du börja räkna upp namnsamlingen innan hela samlingen returneras. När du använder GetDirectoriesmåste du vänta tills hela matrisen med namn returneras innan du kan komma åt matrisen. Därför kan det vara mer effektivt när du arbetar med många filer och kataloger EnumerateDirectories .
Den returnerade samlingen cachelagras inte. varje anrop till GetEnumerator i samlingen startar en ny uppräkning.