Directory.EnumerateDirectories Yöntem

Tanım

Belirtilen ölçütleri karşılayan dizin tam adlarının listelenebilir bir koleksiyonunu döndürür.

Aşırı Yüklemeler

EnumerateDirectories(String)

Belirtilen yolda dizin tam adlarından oluşan numaralandırılabilir bir koleksiyon döndürür.

EnumerateDirectories(String, String)

Belirtilen yoldaki bir arama deseni ile eşleşen dizin tam adlarından oluşan numaralandırılabilir bir koleksiyon döndürür.

EnumerateDirectories(String, String, EnumerationOptions)

Belirtilen yoldaki bir arama deseni ile eşleşen dizin tam adlarının listelenebilir bir koleksiyonunu döndürür ve isteğe bağlı olarak alt dizinleri arar.

EnumerateDirectories(String, String, SearchOption)

Belirtilen yoldaki bir arama deseni ile eşleşen ve isteğe bağlı olarak alt dizinleri arayan dizin tam adlarından oluşan numaralandırılabilir bir koleksiyon döndürür.

EnumerateDirectories(String)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen yolda dizin tam adlarından oluşan numaralandırılabilir bir koleksiyon döndürür.

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)

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

Döndürülenler

tarafından pathbelirtilen dizindeki dizinler için tam adların (yollar dahil) numaralandırılabilir koleksiyonu.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

path, null değeridir.

path , eşlenmemiş bir sürücüye başvurmak gibi geçersizdir.

path bir dosya adıdır.

Belirtilen yol, dosya adı veya birleştirilmiş, sistem tanımlı uzunluk üst sınırını aşıyor.

Çağıranın gerekli izni yok.

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnek, belirtilen yolda en üst düzey dizinleri numaralandırır.

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

Açıklamalar

Parametresinde path göreli veya mutlak yol bilgilerini belirtebilirsiniz. Göreli yol bilgileri, yöntemini kullanarak belirleyebileceğiniz geçerli çalışma dizinine GetCurrentDirectory göre yorumlanır. Döndürülen dizin adları, parametresinde sağladığınız değere ön ek olarak path eklenir. Örneğin, parametresinde path göreli bir yol sağlarsanız, döndürülen dizin adları göreli bir yol içerir.

EnumerateDirectories ve GetDirectories yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateDirectories, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu numaralandırmaya başlayabilirsiniz; kullandığınızdaGetDirectories, diziye erişebilmeniz için ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateDirectories çalışırken daha verimli olabilir.

Döndürülen koleksiyon önbelleğe alınmaz; koleksiyondaki öğesine GetEnumerator yapılan her çağrı yeni bir numaralandırma başlatır.

Şunlara uygulanır

EnumerateDirectories(String, String)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen yoldaki bir arama deseni ile eşleşen dizin tam adlarından oluşan numaralandırılabilir bir koleksiyon döndürür.

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)

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dizin pathadlarla eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ile joker karakter (* ve ?) karakterlerin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.

Döndürülenler

ve tarafından path belirtilen dizindeki dizinler için belirtilen arama deseni ile eşleşen tam adların (yollar dahil) numaralandırılabilir koleksiyonu.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemiyle GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path, null değeridir.

-veya-

searchPattern, null değeridir.

path , eşlenmemiş bir sürücüye başvurmak gibi geçersizdir.

path bir dosya adıdır.

Belirtilen yol, dosya adı veya birleştirilmiş, sistem tanımlı uzunluk üst sınırını aşıyor.

Çağıranın gerekli izni yok.

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnek, belirtilen bir arama deseni ile eşleşen belirtilen yolda en üst düzey dizinleri numaralandırır.

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

Açıklamalar

searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.

Joker karakter tanımlayıcısı Eşleşmeler
* (yıldız işareti) Bu konumda sıfır veya daha fazla karakter.
? (soru işareti) Bu konumda tam olarak bir karakter var.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

Parametresinde path göreli veya mutlak yol bilgilerini belirtebilirsiniz. Göreli yol bilgileri, yöntemini kullanarak belirleyebileceğiniz geçerli çalışma dizinine GetCurrentDirectory göre yorumlanır. Döndürülen dizin adları, parametresinde sağladığınız değere ön ek olarak path eklenir. Örneğin, parametresinde path göreli bir yol sağlarsanız, döndürülen dizin adları göreli bir yol içerir.

EnumerateDirectories ve GetDirectories yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateDirectories, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu numaralandırmaya başlayabilirsiniz; kullandığınızdaGetDirectories, diziye erişebilmeniz için ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateDirectories çalışırken daha verimli olabilir.

Döndürülen koleksiyon önbelleğe alınmaz; koleksiyondaki öğesine GetEnumerator yapılan her çağrı yeni bir numaralandırma başlatır.

Şunlara uygulanır

EnumerateDirectories(String, String, EnumerationOptions)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen yoldaki bir arama deseni ile eşleşen dizin tam adlarının listelenebilir bir koleksiyonunu döndürür ve isteğe bağlı olarak alt dizinleri arar.

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)

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dizin pathadlarla eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ile joker karakter (* ve ?) karakterlerin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.

enumerationOptions
EnumerationOptions

Kullanılacak arama ve numaralandırma yapılandırmasını açıklayan bir nesne.

Döndürülenler

ve tarafından path belirtilen dizindeki dizinler için belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen tam adların (yollar dahil) numaralandırılabilir koleksiyonu.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path veya searchPattern şeklindedir null.

searchOption geçerli SearchOption bir değer değil.

path , eşlenmemiş bir sürücüye başvurmak gibi geçersizdir.

path bir dosya adıdır.

Belirtilen yol, dosya adı veya birleştirilmiş, sistem tanımlı uzunluk üst sınırını aşıyor.

Çağıranın gerekli izni yok.

Çağıranın gerekli izni yok.

Açıklamalar

searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.

Joker karakter tanımlayıcısı Eşleşmeler
* (yıldız işareti) Bu konumda sıfır veya daha fazla karakter.
? (soru işareti) Bu konumda tam olarak bir karakter var.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

Parametresinde path göreli veya mutlak yol bilgilerini belirtebilirsiniz. Göreli yol bilgileri, yöntemini kullanarak belirleyebileceğiniz geçerli çalışma dizinine GetCurrentDirectory göre yorumlanır. Döndürülen dizin adlarının başına parametresinde path sağladığınız değer eklenir. Örneğin, parametresinde path göreli bir yol sağlarsanız, döndürülen dizin adları göreli bir yol içerir.

EnumerateDirectories ve GetDirectories yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateDirectories, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetDirectories, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateDirectories çalışırken daha verimli olabilir.

Döndürülen koleksiyon önbelleğe alınmaz; koleksiyondaki öğesine GetEnumerator yapılan her çağrı yeni bir numaralandırma başlatır.

Şunlara uygulanır

EnumerateDirectories(String, String, SearchOption)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen yoldaki bir arama deseni ile eşleşen dizin tam adlarının listelenebilir bir koleksiyonunu döndürür ve isteğe bağlı olarak alt dizinleri arar.

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)

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dizin pathadlarla eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ve joker karakter (* ve ?) karakterlerinin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.

searchOption
SearchOption

Arama işleminin yalnızca geçerli dizini mi yoksa tüm alt dizinleri mi içermesi gerektiğini belirten numaralandırma değerlerinden biri. TopDirectoryOnly varsayılan değerdir.

Döndürülenler

tarafından path belirtilen dizindeki ve belirtilen arama deseni ve arama seçeneğiyle eşleşen dizinler için tam adların (yollar dahil) numaralandırılabilir koleksiyonu.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya geçersiz karakterler içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path, null değeridir.

-veya-

searchPattern, null değeridir.

searchOption geçerli SearchOption bir değer değil.

path , eşlenmemiş bir sürücüye başvurmak gibi geçersizdir.

path bir dosya adıdır.

Belirtilen yol, dosya adı veya birleştirilmiş, sistem tanımlı uzunluk üst sınırını aşıyor.

Çağıranın gerekli izni yok.

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnek, belirtilen bir arama deseni ile eşleşen belirtilen bir yoldaki dizinleri numaralandırır. Tüm alt dizinlerin aramaya dahil edilmesi gerektiğini belirtmek için parametresini kullanır searchOption .

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

Açıklamalar

searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.

Joker karakter tanımlayıcısı Eşleşmeler
* (yıldız işareti) Bu konumdaki sıfır veya daha fazla karakter.
? (soru işareti) Bu konumda tam olarak bir karakter.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

parametresinde path göreli veya mutlak yol bilgilerini belirtebilirsiniz. Göreli yol bilgileri, yöntemini kullanarak belirleyebileceğiniz geçerli çalışma dizinine GetCurrentDirectory göre yorumlanır. Döndürülen dizin adlarının başına parametresinde path sağladığınız değer eklenir. Örneğin, parametresinde path göreli bir yol sağlarsanız, döndürülen dizin adları göreli bir yol içerir.

EnumerateDirectories ve GetDirectories yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateDirectories, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetDirectories, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateDirectories çalışırken daha verimli olabilir.

Döndürülen koleksiyon önbelleğe alınmaz; koleksiyondaki öğesine GetEnumerator yapılan her çağrı yeni bir numaralandırma başlatır.

Şunlara uygulanır