Directory.EnumerateDirectories Metoda

Definicja

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które spełniają określone kryteria.Returns an enumerable collection of directory full names that meet specified criteria.

Przeciążenia

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów w określonej ścieżce.Returns an enumerable collection of directory full names in a specified path.

EnumerateDirectories(String, String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an enumerable collection of directory full names that match a search pattern in a specified path.

EnumerateDirectories(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of the directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateDirectories(String, String, SearchOption)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów w określonej ścieżce.Returns an enumerable collection of directory full names in a specified path.

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 przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

Zwraca

Wyliczalna kolekcja pełnych nazw (w tym ścieżki) dla katalogów w katalogu określonym przez path.An enumerable collection of the full names (including paths) for the directories in the directory specified by path.

Wyjątki

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera nieprawidłowe znaki.path is a zero-length string, contains only white space, or contains invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

Parametr path ma wartość null.path is null.

path jest nieprawidłowy, na przykład odwołujący się do niemapowanego dysku.path is invalid, such as referring to an unmapped drive.

path jest nazwą pliku.path is a file name.

Określona ścieżka, nazwa pliku lub łącznie przekracza maksymalną długość zdefiniowaną przez system.The specified path, file name, or combined exceed the system-defined maximum length.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Przykłady

Poniższy przykład wylicza katalogi najwyższego poziomu w określonej ścieżce.The following example enumerates the top-level directories in a specified path.

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);
        }
    }
}
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 path można określić informacje o ścieżce względnej lub bezwzględnej.You can specify relative or absolute path information in the path parameter. Informacje o ścieżce względnej są interpretowane jako odnoszące się do bieżącego katalogu roboczego, który można określić za pomocą metody GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method. Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path.The returned directory names are prefixed with the value you provided in the path parameter. Na przykład w przypadku podania ścieżki względnej w parametrze path zwrócone nazwy katalogów będą zawierać ścieżkę względną.For example, if you provide a relative path in the path parameter, the returned directory names will contain a relative path.

Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku korzystania z EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji; gdy używasz GetDirectories, musisz poczekać, aż cała Tablica nazw ma zostać zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateDirectories and GetDirectories methods differ as follows: When you use EnumerateDirectories, you can start enumerating the collection of names before the whole collection is returned; when you use GetDirectories, you must wait for the whole array of names to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateDirectories can be more efficient.

Zwracana kolekcja nie jest buforowana; Każde wywołanie GetEnumerator w kolekcji zacznie nowe Wyliczenie.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateDirectories(String, String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an enumerable collection of directory full names that match a search pattern in a specified path.

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 przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw katalogów w path.The search string to match against the names of directories in path. Ten parametr może zawierać kombinację prawidłowej ścieżki literału i symboli wieloznacznych (* i?), ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Zwraca

Wyliczalna kolekcja pełnych nazw (w tym ścieżki) dla katalogów w katalogu określonym przez path i zgodnych z określonym wzorcem wyszukiwania.An enumerable collection of the full names (including paths) for the directories in the directory specified by path and that match the specified search pattern.

Wyjątki

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera nieprawidłowe znaki.path is a zero-length string, contains only white space, or contains invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with the GetInvalidPathChars() method.

lub-or- searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path ma wartość null.path is null.

lub-or- Parametr searchPattern ma wartość null.searchPattern is null.

path jest nieprawidłowy, na przykład odwołujący się do niemapowanego dysku.path is invalid, such as referring to an unmapped drive.

path jest nazwą pliku.path is a file name.

Określona ścieżka, nazwa pliku lub łącznie przekracza maksymalną długość zdefiniowaną przez system.The specified path, file name, or combined exceed the system-defined maximum length.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Przykłady

Poniższy przykład wylicza katalogi najwyższego poziomu w określonej ścieżce, które pasują do określonego wzorca wyszukiwania.The following example enumerates the top-level directories in a specified path that match a specified search pattern.

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);
        }
    }
}
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ą znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Zero lub jeden znak w tym położeniu.Zero or one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

W parametrze path można określić informacje o ścieżce względnej lub bezwzględnej.You can specify relative or absolute path information in the path parameter. Informacje o ścieżce względnej są interpretowane jako odnoszące się do bieżącego katalogu roboczego, który można określić za pomocą metody GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method. Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path.The returned directory names are prefixed with the value you provided in the path parameter. Na przykład w przypadku podania ścieżki względnej w parametrze path zwrócone nazwy katalogów będą zawierać ścieżkę względną.For example, if you provide a relative path in the path parameter, the returned directory names will contain a relative path.

Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku korzystania z EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji; gdy używasz GetDirectories, musisz poczekać, aż cała Tablica nazw ma zostać zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateDirectories and GetDirectories methods differ as follows: When you use EnumerateDirectories, you can start enumerating the collection of names before the whole collection is returned; when you use GetDirectories, you must wait for the whole array of names to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateDirectories can be more efficient.

Zwracana kolekcja nie jest buforowana; Każde wywołanie GetEnumerator w kolekcji zacznie nowe Wyliczenie.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateDirectories(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of the directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

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>

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw katalogów w path.The search string to match against the names of directories in path. Ten parametr może zawierać kombinację prawidłowej ścieżki literału i symboli wieloznacznych (* i?), ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

enumerationOptions
EnumerationOptions

Obiekt opisujący konfigurację wyszukiwania i wyliczania do użycia.An object that describes the search and enumeration configuration to use.

Zwraca

Wyliczalna kolekcja pełnych nazw (w tym ścieżki) dla katalogów w katalogu określonym przez path i zgodna z określonym wzorcem wyszukiwania i opcjami wyliczenia.An enumerable collection of the full names (including paths) for the directories in the directory specified by path and that match the specified search pattern and enumeration options.

Wyjątki

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera nieprawidłowe znaki.path is a zero-length string, contains only white space, or contains invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

lub-or- searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path lub searchPattern ma wartość null.path or searchPattern is null.

searchOption nie jest prawidłową wartością SearchOption.searchOption is not a valid SearchOption value.

path jest nieprawidłowy, na przykład odwołujący się do niemapowanego dysku.path is invalid, such as referring to an unmapped drive.

path jest nazwą pliku.path is a file name.

Określona ścieżka, nazwa pliku lub łącznie przekracza maksymalną długość zdefiniowaną przez system.The specified path, file name, or combined exceed the system-defined maximum length.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Uwagi

searchPattern może być kombinacją znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Dokładnie jeden znak w tej pozycji.Exactly one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

W parametrze path można określić informacje o ścieżce względnej lub bezwzględnej.You can specify relative or absolute path information in the path parameter. Informacje o ścieżce względnej są interpretowane jako odnoszące się do bieżącego katalogu roboczego, który można określić za pomocą metody GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method. Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path.The returned directory names are prefixed with the value you provided in the path parameter. Na przykład w przypadku podania ścieżki względnej w parametrze path zwrócone nazwy katalogów będą zawierać ścieżkę względną.For example, if you provide a relative path in the path parameter, the returned directory names will contain a relative path.

Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku korzystania z EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji; gdy używasz GetDirectories, musisz poczekać, aż cała Tablica nazw ma zostać zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateDirectories and GetDirectories methods differ as follows: When you use EnumerateDirectories, you can start enumerating the collection of names before the whole collection is returned; when you use GetDirectories, you must wait for the whole array of names to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateDirectories can be more efficient.

Zwracana kolekcja nie jest buforowana; Każde wywołanie GetEnumerator w kolekcji zacznie nowe Wyliczenie.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateDirectories(String, String, SearchOption)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

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>

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw katalogów w path.The search string to match against the names of directories in path. Ten parametr może zawierać kombinację prawidłowej ścieżki literału i symboli wieloznacznych (* i?), ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption

Jedna z wartości wyliczenia, która określa, czy operacja wyszukiwania powinna zawierać tylko bieżący katalog, czy też powinna zawierać wszystkie podkatalogi.One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories. Wartość domyślna to TopDirectoryOnly.The default value is TopDirectoryOnly.

Zwraca

Wyliczalna kolekcja pełnych nazw (w tym ścieżki) dla katalogów w katalogu określonym przez path i zgodna z określonym wzorcem wyszukiwania i opcją wyszukiwania.An enumerable collection of the full names (including paths) for the directories in the directory specified by path and that match the specified search pattern and search option.

Wyjątki

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera nieprawidłowe znaki.path is a zero-length string, contains only white space, or contains invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

lub-or- searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path ma wartość null.path is null.

lub-or- Parametr searchPattern ma wartość null.searchPattern is null.

searchOption nie jest prawidłową wartością SearchOption.searchOption is not a valid SearchOption value.

path jest nieprawidłowy, na przykład odwołujący się do niemapowanego dysku.path is invalid, such as referring to an unmapped drive.

path jest nazwą pliku.path is a file name.

Określona ścieżka, nazwa pliku lub łącznie przekracza maksymalną długość zdefiniowaną przez system.The specified path, file name, or combined exceed the system-defined maximum length.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Przykłady

Poniższy przykład wylicza katalogi w określonej ścieżce, które pasują do określonego wzorca wyszukiwania.The following example enumerates directories in a specified path that match a specified search pattern. Używa parametru searchOption, aby określić, że wszystkie podkatalogi powinny być uwzględnione w wyszukiwaniu.It uses the searchOption parameter to specify that all subdirectories should be included in the search.

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);
        }
    }
}
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ą znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Dokładnie jeden znak w tej pozycji.Exactly one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

W parametrze path można określić informacje o ścieżce względnej lub bezwzględnej.You can specify relative or absolute path information in the path parameter. Informacje o ścieżce względnej są interpretowane jako odnoszące się do bieżącego katalogu roboczego, który można określić za pomocą metody GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method. Zwrócone nazwy katalogów są poprzedzone wartością podaną w parametrze path.The returned directory names are prefixed with the value you provided in the path parameter. Na przykład w przypadku podania ścieżki względnej w parametrze path zwrócone nazwy katalogów będą zawierać ścieżkę względną.For example, if you provide a relative path in the path parameter, the returned directory names will contain a relative path.

Metody EnumerateDirectories i GetDirectories różnią się w następujący sposób: w przypadku korzystania z EnumerateDirectoriesmożna rozpocząć wyliczanie kolekcji nazw przed zwróceniem całej kolekcji; gdy używasz GetDirectories, musisz poczekać, aż cała Tablica nazw ma zostać zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateDirectories and GetDirectories methods differ as follows: When you use EnumerateDirectories, you can start enumerating the collection of names before the whole collection is returned; when you use GetDirectories, you must wait for the whole array of names to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateDirectories może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateDirectories can be more efficient.

Zwracana kolekcja nie jest buforowana; Każde wywołanie GetEnumerator w kolekcji zacznie nowe Wyliczenie.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

Dotyczy