Directory.EnumerateDirectories Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí výčet kolekcí úplných názvů adresářů, které splňují zadaná kritéria.
Přetížení
EnumerateDirectories(String) |
Vrátí výčet kolekcí úplných názvů adresářů v zadané cestě. |
EnumerateDirectories(String, String) |
Vrátí výčet kolekcí úplných jmen adresářů, které odpovídají vzoru hledání v zadané cestě. |
EnumerateDirectories(String, String, EnumerationOptions) |
Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře. |
EnumerateDirectories(String, String, SearchOption) |
Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře. |
EnumerateDirectories(String)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí výčet kolekcí úplných názvů adresářů v zadané cestě.
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)
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
Návraty
Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path
.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
path
je null
.
path
je neplatný, například odkaz na nenamapovanou jednotku.
path
je název souboru.
Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
Volající nemá požadované oprávnění.
Příklady
Následující příklad uvádí seznam adresářů nejvyšší úrovně v zadané cestě.
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
Poznámky
V parametru můžete zadat relativní nebo absolutní informace o cestě path
. Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path
. Pokud například v parametru path
zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.
Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.
Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.
Platí pro
EnumerateDirectories(String, String)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí výčet kolekcí úplných jmen adresářů, které odpovídají vzoru hledání v zadané cestě.
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)
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů v path
. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
Návraty
Výčetná kolekce úplných jmen (včetně cest) pro adresáře v adresáři určeném a path
odpovídající zadanému vzoru hledání.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat GetInvalidPathChars() na neplatné znaky.
-nebo-
searchPattern
neobsahuje platný vzor.
path
je neplatný, například odkaz na nenamapovanou jednotku.
path
je název souboru.
Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
Volající nemá požadované oprávnění.
Příklady
Následující příklad uvádí seznam adresářů nejvyšší úrovně v zadané cestě, které odpovídají zadanému vzoru hledání.
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
Poznámky
searchPattern
může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak v této pozici. |
Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména končící path
písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
searchPattern
nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .
V parametru můžete zadat relativní nebo absolutní informace o cestě path
. Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path
. Pokud například v parametru path
zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.
Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.
Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.
Platí pro
EnumerateDirectories(String, String, EnumerationOptions)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.
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)
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů v path
. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- enumerationOptions
- EnumerationOptions
Objekt, který popisuje konfiguraci vyhledávání a výčtu, která se má použít.
Návraty
Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path
a odpovídající zadanému vzoru vyhledávání a možnostem výčtu.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
-nebo-
searchPattern
neobsahuje platný vzor.
path
nebo searchPattern
je null
.
searchOption
není platná SearchOption hodnota.
path
je neplatný, například odkaz na nenamapovanou jednotku.
path
je název souboru.
Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
Volající nemá požadované oprávnění.
Poznámky
searchPattern
může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak v této pozici. |
Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména končící path
písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
searchPattern
nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .
V parametru můžete zadat relativní nebo absolutní informace o cestě path
. Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path
. Pokud například v parametru path
zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.
Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.
Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.
Platí pro
EnumerateDirectories(String, String, SearchOption)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí výčet kolekcí úplných názvů adresářů, které odpovídají vzoru hledání v zadané cestě, a volitelně prohledá podadresáře.
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)
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů v path
. Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- searchOption
- SearchOption
Jedna z hodnot výčtu, která určuje, zda má operace hledání obsahovat pouze aktuální adresář nebo by měla zahrnovat všechny podadresáře. Výchozí hodnota je TopDirectoryOnly.
Návraty
Výčetná kolekce úplných jmen (včetně cest) adresářů v adresáři určeném nástrojem path
a odpovídající zadanému vzoru hledání a možnosti hledání.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
-nebo-
searchPattern
neobsahuje platný vzor.
searchOption
není platná SearchOption hodnota.
path
je neplatný, například odkaz na nenamapovanou jednotku.
path
je název souboru.
Zadaná cesta, název souboru nebo kombinace překračuje maximální délku definovanou systémem.
Volající nemá požadované oprávnění.
Volající nemá požadované oprávnění.
Příklady
Následující příklad vytvoří výčet adresářů v zadané cestě, které odpovídají zadanému vzoru hledání. Používá searchOption
parametr k určení, že všechny podadresáře mají být zahrnuty do hledání.
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
Poznámky
searchPattern
může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak v této pozici. |
Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména končící path
písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
searchPattern
nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .
V parametru můžete zadat relativní nebo absolutní informace o cestě path
. Informace o relativní cestě jsou interpretovány jako relativní vzhledem k aktuálnímu pracovnímu adresáři, který můžete určit pomocí GetCurrentDirectory metody . Názvy vrácených adresářů mají předponu s hodnotou, kterou jste zadali v parametru path
. Pokud například v parametru path
zadáte relativní cestu, vrácené názvy adresářů budou obsahovat relativní cestu.
Metody EnumerateDirectories a GetDirectories se liší následujícím způsobem: Při použití EnumerateDirectoriesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetDirectoriesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateDirectories může být efektivnější.
Vrácená kolekce není uložena do mezipaměti; každé volání GetEnumerator v kolekci zahájí nový výčet.