Directory.EnumerateDirectories Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wyliczaną kolekcję pełnych nazw katalogów spełniających określone kryteria.
Przeciążenia
EnumerateDirectories(String) |
Zwraca wyliczalną kolekcję pełnych nazw katalogu w określonej ścieżce. |
EnumerateDirectories(String, String) |
Zwraca wyliczalną kolekcję pełnych nazw katalogu, które pasują do wzorca wyszukiwania w określonej ścieżce. |
EnumerateDirectories(String, String, EnumerationOptions) |
Zwraca wyliczenie kolekcji pełnych nazw katalogu pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi. |
EnumerateDirectories(String, String, SearchOption) |
Zwraca wyliczalną kolekcję pełnych nazw katalogu, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi. |
EnumerateDirectories(String)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Zwraca wyliczalną kolekcję pełnych nazw katalogu w określonej ścieżce.
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
Ścieżka względna lub bezwzględna do katalogu do wyszukiwania. W tym ciągu nie jest rozróżniana wielkość liter.
Zwraca
Wyliczalna kolekcja pełnych nazw (w tym ścieżek) katalogów w katalogu określonym przez path
.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
path
to null
.
path
jest nieprawidłowy, na przykład odwoływania się do niezamapowanego dysku.
path
to nazwa pliku.
Określona ścieżka, nazwa pliku lub połączenie przekraczają maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Przykłady
Poniższy przykład wylicza katalogi najwyższego poziomu w określonej ścieżce.
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
Uwagi
W parametrze można określić informacje o ścieżce względnej lub bezwzględnej path
. Informacje o ścieżce względnej są interpretowane jako względem bieżącego katalogu roboczego, który można określić przy użyciu GetCurrentDirectory metody . Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path
. Jeśli na przykład podasz ścieżkę względną w parametrze path
, zwrócone nazwy katalogów będą zawierać ścieżkę względną.
Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku używania metody EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji. W przypadku użycia metody GetDirectoriesnależy poczekać na zwrócenie całej tablicy nazw, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być wydajniejszy.
Zwrócona kolekcja nie jest buforowana; każde wywołanie elementu GetEnumerator w kolekcji rozpocznie nową wyliczenie.
Dotyczy
EnumerateDirectories(String, String)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Zwraca wyliczalną kolekcję pełnych nazw katalogu, które pasują do wzorca wyszukiwania w określonej ścieżce.
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
Ścieżka względna lub bezwzględna do katalogu do wyszukiwania. W tym ciągu nie jest rozróżniana wielkość liter.
- searchPattern
- String
Ciąg wyszukiwania zgodny z nazwami katalogów w pliku path
. Ten parametr może zawierać kombinację prawidłowych znaków literału i symboli wieloznacznych (* i ?), ale nie obsługuje wyrażeń regularnych.
Zwraca
Wyliczalna kolekcja pełnych nazw (w tym ścieżek) katalogów w katalogu określonym przez path
i pasujących do określonego wzorca wyszukiwania.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki. Zapytania dotyczące nieprawidłowych znaków można wykonać za pomocą GetInvalidPathChars() metody .
-lub-
searchPattern
nie zawiera prawidłowego wzorca.
path
jest nieprawidłowy, na przykład odwoływania się do niezamapowanego dysku.
path
to nazwa pliku.
Określona ścieżka, nazwa pliku lub połączenie przekraczają maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Przykłady
Poniższy przykład wylicza katalogi najwyższego poziomu w określonej ścieżce zgodnej z określonym wzorcem wyszukiwania.
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
Uwagi
searchPattern
może być kombinacją literałów i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych. Następujące specyfikatory symboli wieloznacznych są dozwolone w pliku searchPattern
.
Specyfikator symboli wieloznacznych | Jest zgodny z |
---|---|
* (gwiazdka) | Zero lub więcej znaków w tej pozycji. |
? (znak zapytania) | Dokładnie jeden znak w tej pozycji. |
Znaki inne niż symbol wieloznaczny to znaki literału. Na przykład searchPattern
ciąg "*t" wyszukuje wszystkie nazwy path
kończące się literą "t". Ciąg searchPattern
"s*" wyszukuje wszystkie nazwy path
na początku litery "s".
searchPattern
nie może kończyć się dwoma kropkami ("..") lub zawierać dwa kropki (".)."), po DirectorySeparatorChar których następuje lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars metody .
W parametrze można określić informacje o ścieżce względnej lub bezwzględnej path
. Informacje o ścieżce względnej są interpretowane jako względem bieżącego katalogu roboczego, który można określić przy użyciu GetCurrentDirectory metody . Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path
. Jeśli na przykład podasz ścieżkę względną w parametrze path
, zwrócone nazwy katalogów będą zawierać ścieżkę względną.
Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku używania metody EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji. W przypadku użycia metody GetDirectoriesnależy poczekać na zwrócenie całej tablicy nazw, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być wydajniejszy.
Zwrócona kolekcja nie jest buforowana; każde wywołanie elementu GetEnumerator w kolekcji rozpocznie nową wyliczenie.
Dotyczy
EnumerateDirectories(String, String, EnumerationOptions)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Zwraca wyliczaną kolekcję pełnych nazw katalogu pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.
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
Ścieżka względna lub bezwzględna do katalogu do wyszukiwania. W tym ciągu nie jest rozróżniana wielkość liter.
- searchPattern
- String
Ciąg wyszukiwania zgodny z nazwami katalogów w pliku path
. Ten parametr może zawierać kombinację prawidłowych znaków literału i symboli wieloznacznych (* i ?), ale nie obsługuje wyrażeń regularnych.
- enumerationOptions
- EnumerationOptions
Obiekt opisujący konfigurację wyszukiwania i wyliczenia do użycia.
Zwraca
Wyliczana kolekcja pełnych nazw (w tym ścieżek) dla katalogów w katalogu określonym przez path
program i pasujących do określonego wzorca wyszukiwania i opcji wyliczenia.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars() metody .
-lub-
searchPattern
nie zawiera prawidłowego wzorca.
path
lub searchPattern
to null
.
searchOption
jest nieprawidłową SearchOption wartością.
path
jest nieprawidłowy, na przykład odwoływania się do niezamapowanego dysku.
path
to nazwa pliku.
Określona ścieżka, nazwa pliku lub połączenie przekraczają maksymalną długość zdefiniowaną przez system.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Uwagi
searchPattern
może być kombinacją literałów i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych. Następujące specyfikatory symboli wieloznacznych są dozwolone w pliku searchPattern
.
Specyfikator symboli wieloznacznych | Jest zgodny z |
---|---|
* (gwiazdka) | Zero lub więcej znaków w tej pozycji. |
? (znak zapytania) | Dokładnie jeden znak w tej pozycji. |
Znaki inne niż symbol wieloznaczny to znaki literału. Na przykład searchPattern
ciąg "*t" wyszukuje wszystkie nazwy path
kończące się literą "t". Ciąg searchPattern
"s*" wyszukuje wszystkie nazwy path
na początku litery "s".
searchPattern
nie może kończyć się dwoma kropkami ("..") lub zawierać dwa kropki (".)."), po DirectorySeparatorChar których następuje lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków. Możesz wykonać zapytanie o nieprawidłowe znaki przy użyciu GetInvalidPathChars metody .
W parametrze można określić informacje o ścieżce względnej lub bezwzględnej path
. Informacje o ścieżce względnej są interpretowane jako względem bieżącego katalogu roboczego, który można określić przy użyciu GetCurrentDirectory metody . Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path
. Jeśli na przykład podasz ścieżkę względną w parametrze path
, zwrócone nazwy katalogów będą zawierać ścieżkę względną.
Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku użycia metody EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji. W przypadku użycia metody GetDirectoriesnależy poczekać na zwrócenie całej tablicy nazw, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być wydajniejszy.
Zwrócona kolekcja nie jest buforowana; każde wywołanie GetEnumerator obiektu w kolekcji spowoduje uruchomienie nowego wyliczenia.
Dotyczy
EnumerateDirectories(String, String, SearchOption)
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
- Źródło:
- Directory.cs
Zwraca wyliczaną kolekcję pełnych nazw katalogów pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.
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
Ścieżka względna lub bezwzględna do katalogu do wyszukania. W tym ciągu nie jest rozróżniana wielkość liter.
- searchPattern
- String
Ciąg wyszukiwania zgodny z nazwami katalogów w pliku path
. Ten parametr może zawierać kombinację prawidłowych znaków ścieżki literału i symboli wieloznacznych (* i ?), ale nie obsługuje wyrażeń regularnych.
- searchOption
- SearchOption
Jedna z wartości wyliczenia określająca, czy operacja wyszukiwania powinna zawierać tylko bieżący katalog, czy powinna zawierać wszystkie podkatalogi. Wartość domyślna to TopDirectoryOnly.
Zwraca
Wyliczana kolekcja pełnych nazw (w tym ścieżek) dla katalogów w katalogu określonym przez path
program i jest zgodna z określonym wzorcem wyszukiwania i opcją wyszukiwania.
Wyjątki
.NET Framework i .NET Core w wersjach starszych niż 2.1: path
jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki. Zapytania dotyczące nieprawidłowych znaków można wykonać przy użyciu GetInvalidPathChars() metody .
-lub-
searchPattern
nie zawiera prawidłowego wzorca.
searchOption
jest nieprawidłową SearchOption wartością.
path
jest nieprawidłowy, na przykład odwołując się do niezamapowanego dysku.
path
to nazwa pliku.
Określona ścieżka, nazwa pliku lub łączna długość przekracza zdefiniowaną przez system maksymalną długość.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Obiekt wywołujący nie posiada wymaganych uprawnień.
Przykłady
Poniższy przykład wylicza katalogi w określonej ścieżce zgodnej z określonym wzorcem wyszukiwania. Używa parametru searchOption
, aby określić, że wszystkie podkatalogi powinny być uwzględnione w wyszukiwaniu.
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
Uwagi
searchPattern
może być kombinacją literałów i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych. Następujące specyfikatory symboli wieloznacznych są dozwolone w programie searchPattern
.
Specyfikator symboli wieloznacznych | Jest zgodny z |
---|---|
* (gwiazdka) | Zero lub więcej znaków w tej pozycji. |
? (znak zapytania) | Dokładnie jeden znak w tej pozycji. |
Znaki inne niż symbol wieloznaczny to znaki literału. Na przykład searchPattern
ciąg "*t" wyszukuje wszystkie nazwy path
kończące się literą "t". Ciąg searchPattern
"s*" wyszukuje wszystkie nazwy, path
zaczynając od litery "s".
searchPattern
program nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar znak lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków. Zapytania dotyczące nieprawidłowych znaków można wykonać przy użyciu GetInvalidPathChars metody .
W parametrze można określić informacje o ścieżce względnej lub bezwzględnej path
. Informacje o ścieżce względnej są interpretowane jako względem bieżącego katalogu roboczego, który można określić przy użyciu GetCurrentDirectory metody . Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path
. Jeśli na przykład podasz ścieżkę względną w parametrze path
, zwrócone nazwy katalogów będą zawierać ścieżkę względną.
Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku użycia metody EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji. W przypadku użycia metody GetDirectoriesnależy poczekać na zwrócenie całej tablicy nazw, zanim będzie można uzyskać dostęp do tablicy. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być wydajniejszy.
Zwrócona kolekcja nie jest buforowana; każde wywołanie GetEnumerator obiektu w kolekcji spowoduje uruchomienie nowego wyliczenia.