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

Definition

Gibt eine aufzählbare Auflistung von Dateinamen zurück, die bestimmte Kriterien erfüllen.Returns an enumerable collection of file names that meet specified criteria.

Überlädt

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

Gibt eine aufzählbare Auflistung von Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.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)

Gibt eine aufzählbare Auflistung von Dateinamen in einem angegebenen Pfad zurück.Returns an enumerable collection of file names in a specified path.

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

Gibt eine aufzählbare Auflistung von Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.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>

Parameter

searchPattern
String String String String

Gibt zurück

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

Gibt eine aufzählbare Auflistung von Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen. Optional werden Unterverzeichnisse durchsucht.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>

Parameter

path
String String String String

Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll.The relative or absolute path to the directory to search. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.This string is not case-sensitive.

searchPattern
String String String String

Die Suchzeichenfolge für die Überprüfung der Namen von Dateien in path auf Übereinstimmungen.The search string to match against the names of files in path. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.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

Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen.One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories.

Der Standardwert ist TopDirectoryOnly.The default value is TopDirectoryOnly.

Gibt zurück

Eine aufzählbare Auflistung der vollständigen Namen (einschließlich Pfade) für die Dateien im Verzeichnis, das von path angegebenen wird und der angegebene Suchmuster und Option entsprechen.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.

Ausnahmen

path ist eine Zeichenfolge der Länge 0 (null), die nur Leerraum oder ungültige Zeichen enthält.path is a zero-length string, contains only white space, or contains invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars() method.

- oder - -or- searchPattern enthält kein gültiges Muster.searchPattern does not contain a valid pattern.

path ist null.path is null.

- oder - -or- searchPattern ist null.searchPattern is null.

path ist ungültig (verweist z. B. auf ein nicht zugeordnetes Laufwerk).path is invalid, such as referring to an unmapped drive.

path ist ein Dateiname.path is a file name.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.The specified path, file name, or combined exceed the system-defined maximum length.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel wird gezeigt, wie alle Textdateien in einem Verzeichnis und seinen Unterverzeichnissen abgerufen und in ein neues Verzeichnis verschoben werden.The following example shows how to retrieve all the text files in a directory and its subdirectories, and move them to a new directory. Nachdem die Dateien verschoben wurden, sind Sie nicht mehr in den ursprünglichen Verzeichnissen vorhanden.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

Im folgenden Beispiel werden rekursiv alle Dateien mit der Erweiterung. txt aufgelistet, jede Zeile der Datei gelesen und die Zeile angezeigt, wenn Sie die Zeichenfolge "Microsoft" enthält.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

Hinweise

searchPattern kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Die folgenden Platzhalter spezifiatoren sind in searchPatternzulässig.The following wildcard specifiers are permitted in searchPattern.

Platzhalter BezeichnerWildcard specifier ÜbereinstimmungenMatches
* (Sternchen)* (asterisk) NULL oder mehr Zeichen an dieser Position.Zero or more characters in that position.
?? (Fragezeichen)(question mark) NULL oder ein Zeichen an dieser Position.Zero or one character in that position.

Andere Zeichen als der Platzhalter sind Literalzeichen.Characters other than the wildcard are literal characters. Die searchPattern Zeichenfolge "*t" path sucht z. b. nach allen Namen, die mit dem Buchstaben "t" enden.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Die searchPattern Zeichenfolge "*s" path sucht nach allen Namen, die mit dem Buchstaben "s" beginnen.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Hinweis

Wenn Sie das Platzhalter Zeichen Sternchen in einem searchPattern wie "*. txt" verwenden, wirkt sich die Anzahl der Zeichen in der angegebenen Erweiterung wie folgt auf die Suche aus: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:

  • Wenn die angegebene Erweiterung genau drei Zeichen lang ist, gibt die Methode Dateien mit Erweiterungen zurück, die mit der angegebenen Erweiterung beginnen.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Beispielsweise gibt "*. xls" sowohl "Book. xls" als auch "Book. xlsx" zurück.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • In allen anderen Fällen gibt die-Methode Dateien zurück, die exakt mit der angegebenen Erweiterung übereinstimmen.In all other cases, the method returns files that exactly match the specified extension. "*. Ai" gibt z. b. "file.ai", jedoch nicht "file. AIF" zurück.For example, "*.ai" returns "file.ai" but not "file.aif".

Wenn Sie das Fragezeichen-Platzhalter Zeichen verwenden, gibt diese Methode nur die Dateien zurück, die der angegebenen Dateierweiterung entsprechen.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Angenommen, die beiden Dateien "file1. txt" und "file1. txtother" in einem Verzeichnis haben das Suchmuster "file?". txt "gibt nur die erste Datei zurück, während das Suchmuster" file*. txt "beide Dateien zurückgibt.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.

searchPatterndarf nicht mit zwei Punkten ("..") enden oder zwei Punkte ("..") enthalten, DirectorySeparatorChar auf AltDirectorySeparatorChardie oder folgt, und kann keine ungültigen Zeichen enthalten.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars method.

Sie können relative Pfadinformationen mit dem path -Parameter angeben.You can specify relative path information with the path parameter. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert, das Sie mithilfe der GetCurrentDirectory -Methode ermitteln können.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt: Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn GetFilesSie verwenden, müssen Sie darauf warten, dass das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können.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. Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Die zurückgegebene Auflistung wird nicht zwischengespeichert. Jeder-Befehl für GetEnumerator die-Auflistung startet eine neue-Enumeration.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)

Gibt eine aufzählbare Auflistung von Dateinamen in einem angegebenen Pfad zurück.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)

Parameter

path
String String String String

Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll.The relative or absolute path to the directory to search. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.This string is not case-sensitive.

Gibt zurück

Eine aufzählbare Auflistung der vollständigen Namen (einschließlich Pfade) für die Verzeichnisse im Verzeichnis, das von path angegeben wird.An enumerable collection of the full names (including paths) for the files in the directory specified by path.

Ausnahmen

path ist eine Zeichenfolge der Länge 0 (null), die nur Leerraum oder ungültige Zeichen enthält.path is a zero-length string, contains only white space, or contains invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars() method.

path ist ungültig (verweist z. B. auf ein nicht zugeordnetes Laufwerk).path is invalid, such as referring to an unmapped drive.

path ist ein Dateiname.path is a file name.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.The specified path, file name, or combined exceed the system-defined maximum length.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel wird gezeigt, wie alle Dateien in einem Verzeichnis abgerufen und in ein neues Verzeichnis verschoben werden.The following example shows how to retrieve all the files in a directory and move them to a new directory. Nachdem die Dateien verschoben wurden, sind Sie nicht mehr im ursprünglichen Verzeichnis vorhanden.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

Im folgenden Beispiel werden die Dateien im angegebenen Verzeichnis aufgelistet, jede Zeile der Datei gelesen und die Zeile angezeigt, wenn Sie die Zeichenfolge "Europe" enthält.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

Hinweise

Sie können relative Pfadinformationen mit dem path -Parameter angeben.You can specify relative path information with the path parameter. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert, das Sie mithilfe der GetCurrentDirectory -Methode ermitteln können.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt: Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn GetFilesSie verwenden, müssen Sie darauf warten, dass das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können.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. Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Die zurückgegebene Auflistung wird nicht zwischengespeichert. Jeder-Befehl für GetEnumerator die-Auflistung startet eine neue-Enumeration.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)

Gibt eine aufzählbare Auflistung von Dateinamen zurück, die einem Suchmuster in einem angegebenen Pfad entsprechen.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)

Parameter

path
String String String String

Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll.The relative or absolute path to the directory to search. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.This string is not case-sensitive.

searchPattern
String String String String

Die Suchzeichenfolge für die Überprüfung der Namen von Dateien in path auf Übereinstimmungen.The search string to match against the names of files in path. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Gibt zurück

Eine aufzählbare Auflistung der vollständigen Namen (einschließlich Pfade) für die Dateien im Verzeichnis, das von path angegebenen wird und der angegebene Suchmuster entsprechen.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.

Ausnahmen

path ist eine Zeichenfolge der Länge 0 (null), die nur Leerraum oder ungültige Zeichen enthält.path is a zero-length string, contains only white space, or contains invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars() method.

- oder - -or- searchPattern enthält kein gültiges Muster.searchPattern does not contain a valid pattern.

path ist null.path is null.

- oder - -or- searchPattern ist null.searchPattern is null.

path ist ungültig (verweist z. B. auf ein nicht zugeordnetes Laufwerk).path is invalid, such as referring to an unmapped drive.

path ist ein Dateiname.path is a file name.

Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.The specified path, file name, or combined exceed the system-defined maximum length.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.The caller does not have the required permission.

Beispiele

Im folgenden Beispiel wird gezeigt, wie alle Textdateien in einem Verzeichnis abgerufen und in ein neues Verzeichnis verschoben werden.The following example shows how to retrieve all the text files in a directory and move them to a new directory. Nachdem die Dateien verschoben wurden, sind Sie nicht mehr im ursprünglichen Verzeichnis vorhanden.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

Im folgenden Beispiel werden die Dateien im angegebenen Verzeichnis aufgelistet, die über die Erweiterung ". txt" verfügen. jede Zeile der Datei wird gelesen, und die Zeile wird angezeigt, wenn Sie die Zeichenfolge "Europe" enthält.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

Hinweise

searchPattern kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Die folgenden Platzhalter spezifiatoren sind in searchPatternzulässig.The following wildcard specifiers are permitted in searchPattern.

Platzhalter BezeichnerWildcard specifier ÜbereinstimmungenMatches
* (Sternchen)* (asterisk) NULL oder mehr Zeichen an dieser Position.Zero or more characters in that position.
?? (Fragezeichen)(question mark) NULL oder ein Zeichen an dieser Position.Zero or one character in that position.

Andere Zeichen als der Platzhalter sind Literalzeichen.Characters other than the wildcard are literal characters. Die searchPattern Zeichenfolge "*t" path sucht z. b. nach allen Namen, die mit dem Buchstaben "t" enden.For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Die searchPattern Zeichenfolge "*s" path sucht nach allen Namen, die mit dem Buchstaben "s" beginnen.The searchPattern string "s*" searches for all names in path beginning with the letter "s".

Hinweis

Wenn Sie das Platzhalter Zeichen Sternchen in einem searchPattern wie "*. txt" verwenden, wirkt sich die Anzahl der Zeichen in der angegebenen Erweiterung wie folgt auf die Suche aus: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:

  • Wenn die angegebene Erweiterung genau drei Zeichen lang ist, gibt die Methode Dateien mit Erweiterungen zurück, die mit der angegebenen Erweiterung beginnen.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Beispielsweise gibt "*. xls" sowohl "Book. xls" als auch "Book. xlsx" zurück.For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • In allen anderen Fällen gibt die-Methode Dateien zurück, die exakt mit der angegebenen Erweiterung übereinstimmen.In all other cases, the method returns files that exactly match the specified extension. "*. Ai" gibt z. b. "file.ai", jedoch nicht "file. AIF" zurück.For example, "*.ai" returns "file.ai" but not "file.aif".

Wenn Sie das Fragezeichen-Platzhalter Zeichen verwenden, gibt diese Methode nur die Dateien zurück, die der angegebenen Dateierweiterung entsprechen.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Angenommen, die beiden Dateien "file1. txt" und "file1. txtother" in einem Verzeichnis haben das Suchmuster "file?". txt "gibt nur die erste Datei zurück, während das Suchmuster" file*. txt "beide Dateien zurückgibt.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.

searchPatterndarf nicht mit zwei Punkten ("..") enden oder zwei Punkte ("..") enthalten, DirectorySeparatorChar auf AltDirectorySeparatorChardie oder folgt, und kann keine ungültigen Zeichen enthalten.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars-Methode ausführen.You can query for invalid characters by using the GetInvalidPathChars method.

Sie können relative Pfadinformationen mit dem path -Parameter angeben.You can specify relative path information with the path parameter. Relative Pfadinformationen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert, das Sie mithilfe der GetCurrentDirectory -Methode ermitteln können.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Die EnumerateFiles Methoden GetFiles und unterscheiden sich wie folgt: Wenn Sie verwenden EnumerateFiles, können Sie mit dem Auflisten der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn GetFilesSie verwenden, müssen Sie darauf warten, dass das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können.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. Wenn Sie also mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann effizienter sein.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Die zurückgegebene Auflistung wird nicht zwischengespeichert. Jeder-Befehl für GetEnumerator die-Auflistung startet eine neue-Enumeration.The returned collection is not cached; each call to the GetEnumerator on the collection will start a new enumeration.

Gilt für: