Directory.GetFiles Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt die Namen von Dateien zurück, die den angegebenen Kriterien entsprechen.
Überlädt
| Name | Beschreibung |
|---|---|
| GetFiles(String) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) im angegebenen Verzeichnis zurück. |
| GetFiles(String, String) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen. |
| GetFiles(String, String, EnumerationOptions) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die den angegebenen Suchmustern und Enumerationsoptionen im angegebenen Verzeichnis entsprechen. |
| GetFiles(String, String, SearchOption) |
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen, wobei ein Wert verwendet wird, um zu bestimmen, ob Unterverzeichnisse durchsucht werden sollen. |
GetFiles(String)
Gibt die Namen von Dateien (einschließlich ihrer Pfade) im angegebenen Verzeichnis zurück.
public:
static cli::array <System::String ^> ^ GetFiles(System::String ^ path);
public static string[] GetFiles(string path);
static member GetFiles : string -> string[]
Public Shared Function GetFiles (path As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich Pfade) für die Dateien im angegebenen Verzeichnis oder ein leeres Array, wenn keine Dateien gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars() Methode abfragen.
path ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad wurde nicht gefunden oder ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie die Methode verwendet wird GetFiles , um Dateinamen von einem vom Benutzer angegebenen Speicherort zurückzugeben. Das Beispiel ist so konfiguriert, dass alle fehler erfasst werden, die dieser Methode gemeinsam sind.
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;
public class RecursiveFileProcessor
{
public static void Main(string[] args)
{
foreach(string path in args)
{
if(File.Exists(path))
{
// This path is a file
ProcessFile(path);
}
else if(Directory.Exists(path))
{
// This path is a directory
ProcessDirectory(path);
}
else
{
Console.WriteLine("{0} is not a valid file or directory.", path);
}
}
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
public static void ProcessDirectory(string targetDirectory)
{
// Process the list of files found in the directory.
string [] fileEntries = Directory.GetFiles(targetDirectory);
foreach(string fileName in fileEntries)
ProcessFile(fileName);
// Recurse into subdirectories of this directory.
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
foreach(string subdirectory in subdirectoryEntries)
ProcessDirectory(subdirectory);
}
// Insert logic for processing found files here.
public static void ProcessFile(string path)
{
Console.WriteLine("Processed file '{0}'.", path);
}
}
module RecursiveFileProcessor
open System.IO
// Insert logic for processing found files here.
let processFile path =
printfn $"Processed file '%s{path}'."
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
// Process the list of files found in the directory.
let fileEntries = Directory.GetFiles targetDirectory
for fileName in fileEntries do
processFile fileName
// Recurse into subdirectories of this directory.
let subdirectoryEntries = Directory.GetDirectories targetDirectory
for subdirectory in subdirectoryEntries do
processDirectory subdirectory
[<EntryPoint>]
let main args =
for path in args do
if File.Exists path then
// This path is a file
processFile path
elif Directory.Exists path then
// This path is a directory
processDirectory path
else
printfn $"{path} is not a valid file or directory."
0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists
Imports System.IO
Imports System.Collections
Public Class RecursiveFileProcessor
Public Overloads Shared Sub Main(ByVal args() As String)
Dim path As String
For Each path In args
If File.Exists(path) Then
' This path is a file.
ProcessFile(path)
Else
If Directory.Exists(path) Then
' This path is a directory.
ProcessDirectory(path)
Else
Console.WriteLine("{0} is not a valid file or directory.", path)
End If
End If
Next path
End Sub
' Process all files in the directory passed in, recurse on any directories
' that are found, and process the files they contain.
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
' Process the list of files found in the directory.
Dim fileName As String
For Each fileName In fileEntries
ProcessFile(fileName)
Next fileName
Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectory
End Sub
' Insert logic for processing found files here.
Public Shared Sub ProcessFile(ByVal path As String)
Console.WriteLine("Processed file '{0}'.", path)
End Sub
End Class
Hinweise
Die EnumerateFiles Methoden GetFiles unterscheiden sich wie folgt: Bei Verwendung EnumerateFileskönnen Sie mit der Aufzählung der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie dies verwenden GetFiles, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFiles wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Die zurückgegebenen Dateinamen werden an den angegebenen path Parameter angefügt.
Diese Methode ist mit dem Sternchen (*) identisch GetFiles(String, String) , das als Suchmuster angegeben ist.
Der path Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert; verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für:
GetFiles(String, String)
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen.
public:
static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFiles(string path, string searchPattern);
static member GetFiles : string * string -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen der Dateien pathin übereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Wildcardzeichen (* und ?) enthalten, unterstützt aber keine regulären Ausdrücke.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich Pfade) für die Dateien im angegebenen Verzeichnis, die mit dem angegebenen Suchmuster übereinstimmen, oder ein leeres Array, wenn keine Dateien gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mithilfe von GetInvalidPathChars().
-oder-
searchPattern enthält kein gültiges Muster.
path oder searchPattern ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad wurde nicht gefunden oder ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird die Anzahl der Dateien gezählt, die mit dem angegebenen Buchstaben beginnen.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get files that begin with the letter "c".
string[] dirs = Directory.GetFiles(@"c:\", "c*");
Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
foreach (string dir in dirs)
{
Console.WriteLine(dir);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
// Only get files that begin with the letter "c".
let dirs = Directory.GetFiles(@"c:\", "c*")
printfn $"The number of files starting with c is {dirs.Length}."
for dir in dirs do
printfn $"{dir}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
' Only get files that begin with the letter "c".
Dim dirs As String() = Directory.GetFiles("c:\", "c*")
Console.WriteLine("The number of files starting with c is {0}.", dirs.Length)
Dim dir As String
For Each dir In dirs
Console.WriteLine(dir)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Hinweise
Die zurückgegebenen Dateinamen werden an den angegebenen path Parameter angefügt, und die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert. Verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
.NET Framework only: Wenn Sie das Sternchen-Wildcardzeichen in searchPattern verwenden und eine dreistellige Dateierweiterung angeben, z. B. "*.txt", gibt diese Methode auch Dateien mit Erweiterungen zurück, die begin mit der angegebenen Erweiterung. Beispielsweise gibt das Suchmuster "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück. Dieses Verhalten tritt nur auf, wenn ein Sternchen im Suchmuster verwendet wird und die bereitgestellte Dateierweiterung genau drei Zeichen enthält. Wenn Sie das Fragezeichen-Wildcardzeichen irgendwo im Suchmuster verwenden, gibt diese Methode nur Dateien zurück, die exakt mit der angegebenen Dateierweiterung übereinstimmen. Die folgende Tabelle zeigt diese Anomalie in .NET Framework.
| Dateien im Verzeichnis | Suchmuster | .NET 5+-Rückgaben | .NET Framework gibt zurück. |
|---|---|---|---|
| file.ai, file.aif | *.Ai | file.ai | file.ai |
| book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
| ello.txt, hello.txt, hello.txtt | ?ello.txt | hello.txt | hello.txt |
Note
Da diese Methode Dateinamen mit dem 8.3-Dateinamenformat und dem langen Dateinamenformat überprüft, gibt ein Suchmuster ähnlich wie "*1*.txt" möglicherweise unerwartete Dateinamen zurück. Verwenden Sie beispielsweise ein Suchmuster von "*1*.txt" gibt "longfilename.txt" zurück, da das entsprechende 8.3-Dateinamenformat "LONGFI~1.TXT" ist.
Die EnumerateFiles Methoden GetFiles unterscheiden sich wie folgt: Bei Verwendung EnumerateFileskönnen Sie mit der Aufzählung der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie dies verwenden GetFiles, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFiles wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Der path Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für:
GetFiles(String, String, EnumerationOptions)
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die den angegebenen Suchmustern und Enumerationsoptionen im angegebenen Verzeichnis entsprechen.
public:
static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetFiles(string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetFiles : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen der Dateien pathin übereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literal- und Wildcardzeichen enthalten, unterstützt aber keine regulären Ausdrücke.
- enumerationOptions
- EnumerationOptions
Ein Objekt, das die zu verwendende Such- und Enumerationskonfiguration beschreibt.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich Pfade) für die Dateien im angegebenen Verzeichnis, die mit den angegebenen Suchmuster- und Enumerationsoptionen übereinstimmen, oder ein leeres Array, wenn keine Dateien gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mithilfe von GetInvalidPathChars().
-oder-
searchPattern enthält kein gültiges Muster.
path oder searchPattern ist null.
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Der angegebene Pfad wurde nicht gefunden oder ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Hinweise
Die zurückgegebenen Dateinamen werden an den angegebenen path Parameter angefügt, und die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert. Verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
.NET Framework only: Wenn Sie das Sternchen-Wildcardzeichen in searchPattern verwenden und eine dreistellige Dateierweiterung angeben, z. B. "*.txt", gibt diese Methode auch Dateien mit Erweiterungen zurück, die begin mit der angegebenen Erweiterung. Beispielsweise gibt das Suchmuster "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück. Dieses Verhalten tritt nur auf, wenn ein Sternchen im Suchmuster verwendet wird und die bereitgestellte Dateierweiterung genau drei Zeichen enthält. Wenn Sie das Fragezeichen-Wildcardzeichen irgendwo im Suchmuster verwenden, gibt diese Methode nur Dateien zurück, die exakt mit der angegebenen Dateierweiterung übereinstimmen. Die folgende Tabelle zeigt diese Anomalie in .NET Framework.
| Dateien im Verzeichnis | Suchmuster | .NET 5+-Rückgaben | .NET Framework gibt zurück. |
|---|---|---|---|
| file.ai, file.aif | *.Ai | file.ai | file.ai |
| book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
| ello.txt, hello.txt, hello.txtt | ?ello.txt | hello.txt | hello.txt |
Note
Da diese Methode Dateinamen mit dem 8.3-Dateinamenformat und dem langen Dateinamenformat überprüft, gibt ein Suchmuster ähnlich wie "*1*.txt" möglicherweise unerwartete Dateinamen zurück. Verwenden Sie beispielsweise ein Suchmuster von "*1*.txt" gibt "longfilename.txt" zurück, da das entsprechende 8.3-Dateinamenformat "LONGFI~1.TXT" ist.
Die EnumerateFiles Methoden GetFiles unterscheiden sich wie folgt: Bei Verwendung EnumerateFileskönnen Sie mit der Aufzählung der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie dies verwenden GetFiles, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFiles wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Der path Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Gilt für:
GetFiles(String, String, SearchOption)
Gibt die Namen von Dateien (einschließlich ihrer Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen, wobei ein Wert verwendet wird, um zu bestimmen, ob Unterverzeichnisse durchsucht werden sollen.
public:
static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetFiles : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum zu durchsuchenden Verzeichnis. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht beachtet.
- searchPattern
- String
Die Suchzeichenfolge, die mit den Namen der Dateien pathin übereinstimmen soll. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Wildcardzeichen (* und ?) enthalten, unterstützt aber keine regulären Ausdrücke.
- searchOption
- SearchOption
Einer der Enumerationswerte, der angibt, ob der Suchvorgang alle Unterverzeichnisse oder nur das aktuelle Verzeichnis enthalten soll.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich Pfade) für die Dateien im angegebenen Verzeichnis, die dem angegebenen Suchmuster und der angegebenen Option entsprechen, oder ein leeres Array, wenn keine Dateien gefunden werden.
Ausnahmen
.NET Framework- und .NET Core-Versionen, die älter als 2.1 sind: path eine leere Zeichenfolge, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können ungültige Zeichen mit der GetInvalidPathChars() Methode abfragen.
-oder-
searchPattern enthält kein gültiges Muster.
path oder searchPattern ist null.
searchOption ist kein gültiger SearchOption Wert.
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Der angegebene Pfad wurde nicht gefunden oder ist ungültig (z. B. auf einem nicht zugeordneten Laufwerk).
Der angegebene Pfad, der Dateiname oder beide überschreiten die vom System definierte maximale Länge.
Hinweise
Die zurückgegebenen Dateinamen werden an den angegebenen Parameter path angefügt, und die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert. Verwenden Sie die Sort Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
searchPattern kann eine Kombination aus Literal- und Wildcardzeichen sein, aber reguläre Ausdrücke werden nicht unterstützt. Die folgenden Wildcardspezifizierer sind zulässig in searchPattern.
| Wildcardbezeichner | Treffer |
|---|---|
| * (Sternchen) | Null oder mehr Zeichen an dieser Position. |
| ? (Fragezeichen) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als der Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern Zeichenfolge "*t" nach allen Namen, die path mit dem Buchstaben "t" enden. Die searchPattern Zeichenfolge "s*" sucht nach allen Namen, die path mit dem Buchstaben "s" beginnen.
searchPattern Darf nicht in zwei Perioden ("..") enden oder zwei Punkte ("."), gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorChar, oder dürfen sie keine ungültigen Zeichen enthalten. Sie können ungültige Zeichen mithilfe der GetInvalidPathChars Methode abfragen.
Note
.NET Framework only: Wenn Sie das Sternchen-Wildcardzeichen in searchPattern verwenden und eine dreistellige Dateierweiterung angeben, z. B. "*.txt", gibt diese Methode auch Dateien mit Erweiterungen zurück, die begin mit der angegebenen Erweiterung. Beispielsweise gibt das Suchmuster "*.xls" sowohl "book.xls" als auch "book.xlsx" zurück. Dieses Verhalten tritt nur auf, wenn ein Sternchen im Suchmuster verwendet wird und die bereitgestellte Dateierweiterung genau drei Zeichen enthält. Wenn Sie das Fragezeichen-Wildcardzeichen irgendwo im Suchmuster verwenden, gibt diese Methode nur Dateien zurück, die exakt mit der angegebenen Dateierweiterung übereinstimmen. Die folgende Tabelle zeigt diese Anomalie in .NET Framework.
| Dateien im Verzeichnis | Suchmuster | .NET 5+-Rückgaben | .NET Framework gibt zurück. |
|---|---|---|---|
| file.ai, file.aif | *.Ai | file.ai | file.ai |
| book.xls, book.xlsx | *.xls | book.xls | book.xls, book.xlsx |
| ello.txt, hello.txt, hello.txtt | ?ello.txt | hello.txt | hello.txt |
Note
Da diese Methode Dateinamen mit dem 8.3-Dateinamenformat und dem langen Dateinamenformat überprüft, gibt ein Suchmuster ähnlich wie "*1*.txt" möglicherweise unerwartete Dateinamen zurück. Verwenden Sie beispielsweise ein Suchmuster von "*1*.txt" gibt "longfilename.txt" zurück, da das entsprechende 8.3-Dateinamenformat "LONGFI~1.TXT" ist.
Die EnumerateFiles Methoden GetFiles unterscheiden sich wie folgt: Bei Verwendung EnumerateFileskönnen Sie mit der Aufzählung der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie dies verwenden GetFiles, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Daher kann es effizienter sein, EnumerateFiles wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Die Dateinamen enthalten den vollständigen Pfad.
Der path Parameter kann relative oder absolute Pfadinformationen angeben. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die Groß-/Kleinschreibung des path Parameters entspricht dem des Dateisystems, auf dem der Code ausgeführt wird. Die Groß-/Kleinschreibung wird z. B. bei NTFS (dem Standardmäßigen Windows-Dateisystem) beachtet und die Groß-/Kleinschreibung auf Linux-Dateisystemen beachtet.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter "Allgemeine E/A-Aufgaben".
Weitere Informationen
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei