Directory.EnumerateFiles Directory.EnumerateFiles Directory.EnumerateFiles Directory.EnumerateFiles Method

Tanım

Belirtilen ölçütlere uyan dosya adlarının sıralanabilir bir koleksiyonunu döndürür.Returns an enumerable collection of file names that meet specified criteria.

Aşırı Yüklemeler

EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions)
EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption)

Belirtilen yoldaki arama düzeniyle eşleşen dosya adlarının sıralanabilir bir koleksiyonunu döndürür ve isteğe bağlı olarak alt dizinleri arar.Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

Belirtilen yoldaki dosya adlarının sıralanabilir bir koleksiyonunu döndürür.Returns an enumerable collection of file names in a specified path.

EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String)

Belirtilen yoldaki arama düzeniyle eşleşen dosya adlarının sıralanabilir bir koleksiyonunu döndürür.Returns an enumerable collection of file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions) EnumerateFiles(String, String, EnumerationOptions)

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member EnumerateFiles : string * string * System.IO.EnumerationOptions -> seq<string>

Parametreler

searchPattern
String String String String

Döndürülenler

EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption) EnumerateFiles(String, String, SearchOption)

Belirtilen yoldaki arama düzeniyle eşleşen dosya adlarının sıralanabilir bir koleksiyonunu döndürür ve isteğe bağlı olarak alt dizinleri arar.Returns an enumerable collection of file names that match a search pattern in a specified path, and optionally searches subdirectories.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern, System.IO.SearchOption searchOption);
static member EnumerateFiles : string * string * System.IO.SearchOption -> seq<string>

Parametreler

path
String String String String

Arama yapılacak dizinin göreli veya mutlak yolu.The relative or absolute path to the directory to search. Bu dize, büyük küçük harf duyarlı değildir.This string is not case-sensitive.

searchPattern
String String String String

İçindeki pathdosyaların adlarıyla eşleşecek arama dizesi.The search string to match against the names of files in path. Bu parametre geçerli değişmez değer yolu ve joker karakter (* ve?) karakterlerinden oluşan bir bileşim içerebilir, ancak normal ifadeleri desteklemez.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption SearchOption SearchOption SearchOption

Arama işleminin yalnızca geçerli dizini mi yoksa tüm alt dizinleri mi içermesi gerektiğini belirten sabit listesi değerlerinden biri.One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.

Varsayılan değer TopDirectoryOnly şeklindedir.The default value is TopDirectoryOnly.

Döndürülenler

Tarafından path belirtilen ve belirtilen arama düzeniyle ve seçeneğiyle eşleşen dizindeki dosyalar için tam adların (yollar dahil) sıralanabilir bir koleksiyonu.An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern and option.

Özel Durumlar

pathsıfır uzunluklu bir dize, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. GetInvalidPathChars() Yöntemini kullanarak geçersiz karakterler için sorgulama yapabilirsiniz.You can query for invalid characters by using the GetInvalidPathChars() method.

-veya--or- searchPatterngeçerli bir model içermiyor.searchPattern does not contain a valid pattern.

pathnull.path is null.

-veya--or- searchPatternnull.searchPattern is null.

path, eşlenmemiş bir sürücüye başvurma gibi geçersizdir.path is invalid, such as referring to an unmapped drive.

pathbir dosya adıdır.path is a file name.

Belirtilen yol, dosya adı veya Birleşik sistem tarafından tanımlanan uzunluk üst sınırını aşıyor.The specified path, file name, or combined exceed the system-defined maximum length.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Örnekler

Aşağıdaki örnek, bir dizindeki ve alt dizinlerindeki tüm metin dosyalarının nasıl alınacağını ve yeni bir dizine nasıl taşınacağını gösterir.The following example shows how to retrieve all the text files in a directory and its subdirectories, and move them to a new directory. Dosyalar taşındıktan sonra, özgün dizinlerde artık yok.After the files are moved, they no longer exist in the original directories.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt", SearchOption.AllDirectories)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Aşağıdaki örnek,. txt uzantısına sahip tüm dosyaları yinelemeli olarak numaralandırır, dosyanın her satırını okur ve "Microsoft" dizesini içeriyorsa satırı görüntüler.The following example recursively enumerates all files that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Microsoft".

using System;
using System.IO;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // Set a variable to the My Documents path.
            string docPath =
            Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

            var files = from file in Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(file)
                        where line.Contains("Microsoft")
                        select new
                        {
                            File = file,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine($"{f.File}\t{f.Line}");
            }
            Console.WriteLine($"{files.Count().ToString()} files found.");
        }
        catch (UnauthorizedAccessException uAEx)
        {
            Console.WriteLine(uAEx.Message);
        }
        catch (PathTooLongException pathEx)
        {
            Console.WriteLine(pathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Xml.Linq

Module Module1

    Sub Main()
        Try
            Dim docPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
            Dim files = From chkFile In Directory.EnumerateFiles(docPath, "*.txt", SearchOption.AllDirectories)
                        From line In File.ReadLines(chkFile)
                        Where line.Contains("Microsoft")
                        Select New With {.curFile = chkFile, .curLine = line}

            For Each f In files
                Console.WriteLine($"{f.File}\t{f.Line}")
            Next
            Console.WriteLine($"{files.Count} files found.")
        Catch uAEx As UnauthorizedAccessException
            Console.WriteLine(uAEx.Message)
        Catch pathEx As PathTooLongException
            Console.WriteLine(pathEx.Message)
        End Try
    End Sub
End Module

Açıklamalar

searchPatterndeğişmez değer ve joker karakterlerin bir birleşimi olabilir, ancak normal ifadeleri desteklemez.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. ' De searchPatternaşağıdaki joker karakter tanımlayıcılarına izin verilir.The following wildcard specifiers are permitted in searchPattern.

Joker karakter BelirleyicisiWildcard specifier EşleşmelerMatches
*koyun* (asterisk) Bu konumda sıfır veya daha fazla karakter.Zero or more characters in that position.
?? (soru işareti)(question mark) Bu konumda sıfır veya bir karakter.Zero or one character in that position.

Joker karakter dışındaki karakterler değişmez karakterlerdir.Characters other than the wildcard are literal characters. Örneğin, searchPattern "*t" dizesi "t" harfiyle path biten tüm adları arar.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". path " searchPattern S*" dizesi, "s" harfiyle başlayan tüm adları arar.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Not

searchPattern "*. Txt" gibi yıldız joker karakterini kullandığınızda, belirtilen uzantıdaki karakterlerin sayısı aramayı şu şekilde etkiler:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Belirtilen uzantı tam olarak üç karakter uzunluğundadır, yöntemi belirtilen uzantıyla başlayan uzantılara sahip dosyaları döndürür.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Örneğin, "*. xls" hem "Book. xls" hem de "Book. xlsx" döndürür.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Diğer tüm durumlarda, yöntemi belirtilen uzantıyla tam olarak eşleşen dosyaları geri döndürür.In all other cases, the method returns files that exactly match the specified extension. Örneğin, "*. AI", "File.ai" döndürür ancak "File. aif" döndürmez.For example, "*.ai" returns "file.ai" but not "file.aif".

Soru işareti joker karakterini kullandığınızda, bu yöntem yalnızca belirtilen dosya uzantısıyla eşleşen dosyaları döndürür.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Örneğin, "FILE1. txt" ve "FILE1. txtother" olmak üzere iki dosya verildiğinde, bir dizinde "dosya?" arama deseninin txt "," File*. txt "arama deseninin her iki dosyayı da döndürmesi durumunda yalnızca ilk dosyayı döndürür.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPatterniki nokta (".") ile DirectorySeparatorChar bitemez ya da iki nokta ("."), ardından veya, ya AltDirectorySeparatorCharda herhangi bir geçersiz karakter içeremez.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. GetInvalidPathChars Yöntemini kullanarak geçersiz karakterler için sorgulama yapabilirsiniz.You can query for invalid characters by using the GetInvalidPathChars method.

path Parametresi ile göreli yol bilgilerini belirtebilirsiniz.You can specify relative path information with the path parameter. Göreli yol bilgileri, GetCurrentDirectory yöntemini kullanarak belirleyebilmeniz için geçerli çalışma dizinine göre yorumlanır.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles VeGetFiles yöntemleri aşağıdaki gibi farklılık gösterir: ' I kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce ad koleksiyonunu numaralandırma işlemine başlayabilirsiniz. kullandığınızda GetFiles, diziye erişebilmek için önce tüm ad dizisinin döndürülmesini beklemeniz gerekir.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Döndürülen koleksiyon önbelleğe alınmadı; Koleksiyondaki her bir çağrı GetEnumerator yeni bir sabit listesi başlatır.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String) EnumerateFiles(String)

Belirtilen yoldaki dosya adlarının sıralanabilir bir koleksiyonunu döndürür.Returns an enumerable collection of file names in a specified path.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path);
static member EnumerateFiles : string -> seq<string>
Public Shared Function EnumerateFiles (path As String) As IEnumerable(Of String)

Parametreler

path
String String String String

Arama yapılacak dizinin göreli veya mutlak yolu.The relative or absolute path to the directory to search. Bu dize, büyük küçük harf duyarlı değildir.This string is not case-sensitive.

Döndürülenler

Tarafından pathbelirtilen dizindeki dosyalar için tam adların (yollar dahil) sıralanabilir bir koleksiyonu.An enumerable collection of the full names (including paths) for the files in the directory specified by path.

Özel Durumlar

pathsıfır uzunluklu bir dize, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. GetInvalidPathChars() Yöntemini kullanarak geçersiz karakterler için sorgulama yapabilirsiniz.You can query for invalid characters by using the GetInvalidPathChars() method.

path, eşlenmemiş bir sürücüye başvurma gibi geçersizdir.path is invalid, such as referring to an unmapped drive.

pathbir dosya adıdır.path is a file name.

Belirtilen yol, dosya adı veya Birleşik sistem tarafından tanımlanan uzunluk üst sınırını aşıyor.The specified path, file name, or combined exceed the system-defined maximum length.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Örnekler

Aşağıdaki örnek, bir dizindeki tüm dosyaların nasıl alınacağını ve yeni bir dizine nasıl taşınacağını gösterir.The following example shows how to retrieve all the files in a directory and move them to a new directory. Dosyalar taşındıktan sonra, özgün dizinde artık yok.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory);

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

Aşağıdaki örnek, belirtilen dizindeki dosyaları numaralandırır, dosyanın her satırını okur ve "Avrupa" dizesini içeriyorsa çizgiyi görüntüler.The following example enumerates the files in the specified directory, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all files containing the word 'Europe'.
            var files = from file in 
                Directory.EnumerateFiles(@"\\archives1\library\")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

Açıklamalar

path Parametresi ile göreli yol bilgilerini belirtebilirsiniz.You can specify relative path information with the path parameter. Göreli yol bilgileri, GetCurrentDirectory yöntemini kullanarak belirleyebilmeniz için geçerli çalışma dizinine göre yorumlanır.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles VeGetFiles yöntemleri aşağıdaki gibi farklılık gösterir: ' I kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce ad koleksiyonunu numaralandırma işlemine başlayabilirsiniz. kullandığınızda GetFiles, diziye erişebilmek için önce tüm ad dizisinin döndürülmesini beklemeniz gerekir.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Döndürülen koleksiyon önbelleğe alınmadı; Koleksiyondaki her bir çağrı GetEnumerator yeni bir sabit listesi başlatır.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String) EnumerateFiles(String, String)

Belirtilen yoldaki arama düzeniyle eşleşen dosya adlarının sıralanabilir bir koleksiyonunu döndürür.Returns an enumerable collection of file names that match a search pattern in a specified path.

public:
 static System::Collections::Generic::IEnumerable<System::String ^> ^ EnumerateFiles(System::String ^ path, System::String ^ searchPattern);
public static System.Collections.Generic.IEnumerable<string> EnumerateFiles (string path, string searchPattern);
static member EnumerateFiles : string * string -> seq<string>
Public Shared Function EnumerateFiles (path As String, searchPattern As String) As IEnumerable(Of String)

Parametreler

path
String String String String

Arama yapılacak dizinin göreli veya mutlak yolu.The relative or absolute path to the directory to search. Bu dize, büyük küçük harf duyarlı değildir.This string is not case-sensitive.

searchPattern
String String String String

İçindeki pathdosyaların adlarıyla eşleşecek arama dizesi.The search string to match against the names of files in path. Bu parametre geçerli değişmez değer yolu ve joker karakter (* ve?) karakterlerinden oluşan bir bileşim içerebilir, ancak normal ifadeleri desteklemez.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Döndürülenler

Tarafından path belirtilen ve belirtilen arama düzeniyle eşleşen dizindeki dosyalar için tam adların (yollar dahil) sıralanabilir bir koleksiyonu.An enumerable collection of the full names (including paths) for the files in the directory specified by path and that match the specified search pattern.

Özel Durumlar

pathsıfır uzunluklu bir dize, yalnızca boşluk içeriyor veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. GetInvalidPathChars() Yöntemini kullanarak geçersiz karakterler için sorgulama yapabilirsiniz.You can query for invalid characters by using the GetInvalidPathChars() method.

-veya--or- searchPatterngeçerli bir model içermiyor.searchPattern does not contain a valid pattern.

pathnull.path is null.

-veya--or- searchPatternnull.searchPattern is null.

path, eşlenmemiş bir sürücüye başvurma gibi geçersizdir.path is invalid, such as referring to an unmapped drive.

pathbir dosya adıdır.path is a file name.

Belirtilen yol, dosya adı veya Birleşik sistem tarafından tanımlanan uzunluk üst sınırını aşıyor.The specified path, file name, or combined exceed the system-defined maximum length.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Çağıranın gerekli izni yok.The caller does not have the required permission.

Örnekler

Aşağıdaki örnek, bir dizindeki tüm metin dosyalarının nasıl alınacağını ve yeni bir dizine nasıl taşınacağını gösterir.The following example shows how to retrieve all the text files in a directory and move them to a new directory. Dosyalar taşındıktan sonra, özgün dizinde artık yok.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

Aşağıdaki örnek, bir. txt uzantısına sahip belirtilen dizindeki dosyaları numaralandırır, dosyanın her satırını okur ve "Avrupa" dizesini içeriyorsa çizgiyi görüntüler.The following example enumerates the files in the specified directory that have a .txt extension, reads each line of the file, and displays the line if it contains the string "Europe".

using System;
using System.Linq;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // LINQ query for all .txt files containing the word 'Europe'.
            var files = from file in Directory.EnumerateFiles(@"\\archives1\library\", "*.txt")
                where file.ToLower().Contains("europe")
                select file;

            foreach (var file in files)
            {
                Console.WriteLine("{0}", file);
            }
            Console.WriteLine("{0} files found.", files.Count<string>().ToString());
        }
            
        catch (UnauthorizedAccessException UAEx)
        {
            Console.WriteLine(UAEx.Message);
        }
        catch (PathTooLongException PathEx)
        {
            Console.WriteLine(PathEx.Message);
        }
    }
}
Imports System.IO
Imports System.Linq

Module Module1

    Sub Main()
        Try
            ' LINQ query for all .txt files containing the word 'Europe'.
            Dim files = From file In Directory.EnumerateFiles("\\archives1\library\", "*.txt")
                Where file.ToLower().Contains("europe")

            For Each file In files
                Console.WriteLine("{0}", file)
            Next
            Console.WriteLine("{0} files found.", files.Count.ToString())
        Catch UAEx As UnauthorizedAccessException
            Console.WriteLine(UAEx.Message)
        Catch PathEx As PathTooLongException
            Console.WriteLine(PathEx.Message)
        End Try
    End Sub

End Module

Açıklamalar

searchPatterndeğişmez değer ve joker karakterlerin bir birleşimi olabilir, ancak normal ifadeleri desteklemez.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. ' De searchPatternaşağıdaki joker karakter tanımlayıcılarına izin verilir.The following wildcard specifiers are permitted in searchPattern.

Joker karakter BelirleyicisiWildcard specifier EşleşmelerMatches
*koyun* (asterisk) Bu konumda sıfır veya daha fazla karakter.Zero or more characters in that position.
?? (soru işareti)(question mark) Bu konumda sıfır veya bir karakter.Zero or one character in that position.

Joker karakter dışındaki karakterler değişmez karakterlerdir.Characters other than the wildcard are literal characters. Örneğin, searchPattern "*t" dizesi "t" harfiyle path biten tüm adları arar.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". path " searchPattern S*" dizesi, "s" harfiyle başlayan tüm adları arar.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Not

searchPattern "*. Txt" gibi yıldız joker karakterini kullandığınızda, belirtilen uzantıdaki karakterlerin sayısı aramayı şu şekilde etkiler:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Belirtilen uzantı tam olarak üç karakter uzunluğundadır, yöntemi belirtilen uzantıyla başlayan uzantılara sahip dosyaları döndürür.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Örneğin, "*. xls" hem "Book. xls" hem de "Book. xlsx" döndürür.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Diğer tüm durumlarda, yöntemi belirtilen uzantıyla tam olarak eşleşen dosyaları geri döndürür.In all other cases, the method returns files that exactly match the specified extension. Örneğin, "*. AI", "File.ai" döndürür ancak "File. aif" döndürmez.For example, "*.ai" returns "file.ai" but not "file.aif".

Soru işareti joker karakterini kullandığınızda, bu yöntem yalnızca belirtilen dosya uzantısıyla eşleşen dosyaları döndürür.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Örneğin, "FILE1. txt" ve "FILE1. txtother" olmak üzere iki dosya verildiğinde, bir dizinde "dosya?" arama deseninin txt "," File*. txt "arama deseninin her iki dosyayı da döndürmesi durumunda yalnızca ilk dosyayı döndürür.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

searchPatterniki nokta (".") ile DirectorySeparatorChar bitemez ya da iki nokta ("."), ardından veya, ya AltDirectorySeparatorCharda herhangi bir geçersiz karakter içeremez.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. GetInvalidPathChars Yöntemini kullanarak geçersiz karakterler için sorgulama yapabilirsiniz.You can query for invalid characters by using the GetInvalidPathChars method.

path Parametresi ile göreli yol bilgilerini belirtebilirsiniz.You can specify relative path information with the path parameter. Göreli yol bilgileri, GetCurrentDirectory yöntemini kullanarak belirleyebilmeniz için geçerli çalışma dizinine göre yorumlanır.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles VeGetFiles yöntemleri aşağıdaki gibi farklılık gösterir: ' I kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce ad koleksiyonunu numaralandırma işlemine başlayabilirsiniz. kullandığınızda GetFiles, diziye erişebilmek için önce tüm ad dizisinin döndürülmesini beklemeniz gerekir.The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Döndürülen koleksiyon önbelleğe alınmadı; Koleksiyondaki her bir çağrı GetEnumerator yeni bir sabit listesi başlatır.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

Şunlara uygulanır