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

Tanım

Belirtilen ölçütleri karşılayan dosya adları numaralandırılabilir 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 yolda bir arama deseniyle eşleşen dosya adları numaralandırılabilir 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 yolda dosya adları numaralandırılabilir 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 yolda bir arama deseniyle eşleşen dosya adları numaralandırılabilir 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 yolda bir arama deseniyle eşleşen dosya adları numaralandırılabilir 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 için dizine 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

Dosyaların adlarını eşleştirilecek arama dizesi path.The search string to match against the names of files in path. Bu parametre geçerli değişmez bir yol ve joker karakter kombinasyonu içerebilir (* ve?) karakterleri, 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şlemi yalnızca geçerli dizin içermelidir veya tüm alt dizinleri içermelidir belirten numaralandırma 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

Bir sıralanabilir koleksiyonun (yolları dahil) tarafından belirtilen dizindeki dosyaların tam adları path ve eşleşen seçeneği ve belirtilen arama deseni.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

path sıfır uzunluklu bir dizedir, yalnızca boşluk veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. Geçersiz karakterleri kullanarak sorgulayabilirsiniz GetInvalidPathChars() yöntemi.You can query for invalid characters by using the GetInvalidPathChars() method.

-veya--or- searchPattern Geçerli bir düzen içermiyor.searchPattern does not contain a valid pattern.

path olan null.path is null.

-veya--or- searchPattern olan null.searchPattern is null.

path eşlenmemiş bir sürücü için başvuran gibi geçersiz.path is invalid, such as referring to an unmapped drive.

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

Belirtilen yol, dosya adı ya da birleşik, sistem tarafından tanımlanan en fazla uzunluğu 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 dizin ve alt dizinlerinde tüm metin dosyaları almak ve bunları yeni bir klasöre taşımak gösterilmektedir.The following example shows how to retrieve all the text files in a directory and its subdirectories, and move them to a new directory. Dosya taşındıktan sonra özgün dizin 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 yinelemeli olarak bir .txt uzantısı olan tüm dosyaları listeler, her satır dosyanın okur ve "Microsoft" dizesini içeriyorsa, bir çizgi 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

searchPattern je typu literal a joker karakter birleşimi olabilir, ancak normal ifadeleri desteklemiyor.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Aşağıdaki joker tanımlayıcıları izin verilen searchPattern.The following wildcard specifiers are permitted in searchPattern.

Joker karakter tanımlayıcısıWildcard specifier EşleşmelerMatches
* (yıldız işareti)* (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 karakterler değişmez karakterler var.Characters other than the wildcard are literal characters. Örneğin, searchPattern dize "*t" tüm adlarını arar path "t" harfi ile biten.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". searchPattern Dize "s*" tüm adlarını arar path "s" harfi ile başlayan.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Not

Yıldız işareti joker karakter kullanırken bir searchPattern gibi "*.txt", belirtilen uzantı karakter sayısı gibi arama 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ğunda ise, yöntem belirtilen uzantı ile 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" ve "book.xlsx" döndürür.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Diğer tüm durumlarda yöntem, belirtilen uzantı tam olarak eşleşen dosyaları döndürür.In all other cases, the method returns files that exactly match the specified extension. Örneğin, "*.ai" "file.ai" ancak değil "file.aif" döndürür.For example, "*.ai" returns "file.ai" but not "file.aif".

Soru işareti joker karakterini kullanın, bu yöntem yalnızca belirtilen dosya uzantısı ile 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, bir dizinde arama deseni iki dosya, "Dosya1.ref" ve "file1.txtother" verilen "dosya?. txt", ancak yalnızca ilk dosyasını döndürür arama deseni" dosya*.txt "her iki 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.

searchPattern iki nokta ile bitemez ("...") veya iki tane nokta içeren ("...") ardından DirectorySeparatorChar veya AltDirectorySeparatorChar, ne de 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. Geçersiz karakterleri kullanarak sorgulayabilirsiniz GetInvalidPathChars yöntemi.You can query for invalid characters by using the GetInvalidPathChars method.

Göreli yol bilgileriyle belirtebilirsiniz path parametresi.You can specify relative path information with the path parameter. Göreli yol bilgisi kullanarak belirleyen geçerli çalışma dizinine göre gibi yorumlanır GetCurrentDirectory yöntemi.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles Ve GetFiles yöntemleri farklı şekilde: Kullanırken EnumerateFiles, bütün koleksiyonu döndürülmeden önce adları topluluğu numaralandırma başlayabilirsiniz; kullandığınızda GetFiles, tüm dizi erişebilmeniz için önce döndürülecek adları dizisi için 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, çalışırken birçok dosyaları ve dizinleri EnumerateFiles 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ınmaz; her çağrı GetEnumerator koleksiyonunda yeni bir numaralandırma başlar.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 yolda dosya adları numaralandırılabilir 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 için dizine 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

Bir sıralanabilir koleksiyonun (yolları dahil) tarafından belirtilen dizindeki dosyaların tam adları path.An enumerable collection of the full names (including paths) for the files in the directory specified by path.

Özel Durumlar

path sıfır uzunluklu bir dizedir, yalnızca boşluk veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. Geçersiz karakterleri kullanarak sorgulayabilirsiniz GetInvalidPathChars() yöntemi.You can query for invalid characters by using the GetInvalidPathChars() method.

path eşlenmemiş bir sürücü için başvuran gibi geçersiz.path is invalid, such as referring to an unmapped drive.

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

Belirtilen yol, dosya adı ya da birleşik, sistem tarafından tanımlanan en fazla uzunluğu 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ı almak ve bunları yeni bir klasöre taşımak gösterilmektedir.The following example shows how to retrieve all the files in a directory and move them to a new directory. Dosya taşındıktan sonra özgün dizin 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ı listeler, her satır dosyanın okur ve "Avrupa" dizesini içeriyorsa, bir çizgi 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

Göreli yol bilgileriyle belirtebilirsiniz path parametresi.You can specify relative path information with the path parameter. Göreli yol bilgisi kullanarak belirleyen geçerli çalışma dizinine göre gibi yorumlanır GetCurrentDirectory yöntemi.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles Ve GetFiles yöntemleri farklı şekilde: Kullanırken EnumerateFiles, bütün koleksiyonu döndürülmeden önce adları topluluğu numaralandırma başlayabilirsiniz; kullandığınızda GetFiles, tüm dizi erişebilmeniz için önce döndürülecek adları dizisi için 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, çalışırken birçok dosyaları ve dizinleri EnumerateFiles 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ınmaz; her çağrı GetEnumerator koleksiyonunda yeni bir numaralandırma başlar.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 yolda bir arama deseniyle eşleşen dosya adları numaralandırılabilir 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 için dizine 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

Dosyaların adlarını eşleştirilecek arama dizesi path.The search string to match against the names of files in path. Bu parametre geçerli değişmez bir yol ve joker karakter kombinasyonu içerebilir (* ve?) karakterleri, 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

Bir sıralanabilir koleksiyonun (yolları dahil) tarafından belirtilen dizindeki dosyaların tam adları path ve belirtilen arama deseniyle eşleşen.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

path sıfır uzunluklu bir dizedir, yalnızca boşluk veya geçersiz karakterler içeriyor.path is a zero-length string, contains only white space, or contains invalid characters. Geçersiz karakterleri kullanarak sorgulayabilirsiniz GetInvalidPathChars() yöntemi.You can query for invalid characters by using the GetInvalidPathChars() method.

-veya--or- searchPattern Geçerli bir düzen içermiyor.searchPattern does not contain a valid pattern.

path olan null.path is null.

-veya--or- searchPattern olan null.searchPattern is null.

path eşlenmemiş bir sürücü için başvuran gibi geçersiz.path is invalid, such as referring to an unmapped drive.

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

Belirtilen yol, dosya adı ya da birleşik, sistem tarafından tanımlanan en fazla uzunluğu 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ı almak ve bunları yeni bir klasöre taşımak gösterilmektedir.The following example shows how to retrieve all the text files in a directory and move them to a new directory. Dosya taşındıktan sonra özgün dizin 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ı olan dosyaları belirtilen dizindeki listeler, her satır dosyanın okur ve "Avrupa" dizesini içeriyorsa satırı 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

searchPattern je typu literal a joker karakter birleşimi olabilir, ancak normal ifadeleri desteklemiyor.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Aşağıdaki joker tanımlayıcıları izin verilen searchPattern.The following wildcard specifiers are permitted in searchPattern.

Joker karakter tanımlayıcısıWildcard specifier EşleşmelerMatches
* (yıldız işareti)* (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 karakterler değişmez karakterler var.Characters other than the wildcard are literal characters. Örneğin, searchPattern dize "*t" tüm adlarını arar path "t" harfi ile biten.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". searchPattern Dize "s*" tüm adlarını arar path "s" harfi ile başlayan.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Not

Yıldız işareti joker karakter kullanırken bir searchPattern gibi "*.txt", belirtilen uzantı karakter sayısı gibi arama 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ğunda ise, yöntem belirtilen uzantı ile 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" ve "book.xlsx" döndürür.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • Diğer tüm durumlarda yöntem, belirtilen uzantı tam olarak eşleşen dosyaları döndürür.In all other cases, the method returns files that exactly match the specified extension. Örneğin, "*.ai" "file.ai" ancak değil "file.aif" döndürür.For example, "*.ai" returns "file.ai" but not "file.aif".

Soru işareti joker karakterini kullanın, bu yöntem yalnızca belirtilen dosya uzantısı ile 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, bir dizinde arama deseni iki dosya, "Dosya1.ref" ve "file1.txtother" verilen "dosya?. txt", ancak yalnızca ilk dosyasını döndürür arama deseni" dosya*.txt "her iki 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.

searchPattern iki nokta ile bitemez ("...") veya iki tane nokta içeren ("...") ardından DirectorySeparatorChar veya AltDirectorySeparatorChar, ne de 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. Geçersiz karakterleri kullanarak sorgulayabilirsiniz GetInvalidPathChars yöntemi.You can query for invalid characters by using the GetInvalidPathChars method.

Göreli yol bilgileriyle belirtebilirsiniz path parametresi.You can specify relative path information with the path parameter. Göreli yol bilgisi kullanarak belirleyen geçerli çalışma dizinine göre gibi yorumlanır GetCurrentDirectory yöntemi.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

EnumerateFiles Ve GetFiles yöntemleri farklı şekilde: Kullanırken EnumerateFiles, bütün koleksiyonu döndürülmeden önce adları topluluğu numaralandırma başlayabilirsiniz; kullandığınızda GetFiles, tüm dizi erişebilmeniz için önce döndürülecek adları dizisi için 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, çalışırken birçok dosyaları ve dizinleri EnumerateFiles 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ınmaz; her çağrı GetEnumerator koleksiyonunda yeni bir numaralandırma başlar.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

Şunlara uygulanır