DirectoryInfo.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 eine Dateiliste des aktuellen Verzeichnisses zurück.
Überlädt
GetFiles(String, EnumerationOptions) |
Gibt eine Liste der Dateien im aktuellen Verzeichnis zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen. |
GetFiles(String, SearchOption) |
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht. Anhand eines Werts wird bestimmt, ob in Unterverzeichnissen gesucht wird. |
GetFiles() |
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück. |
GetFiles(String) |
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht. |
GetFiles(String, EnumerationOptions)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine Liste der Dateien im aktuellen Verzeichnis zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFiles : string * System.IO.EnumerationOptions -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As FileInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
- enumerationOptions
- EnumerationOptions
Ein Objekt, das die zu verwendende Such- und Enumerationskonfiguration beschreibt.
Gibt zurück
Ein Array von stark typisierten FileInfo-Objekten, die searchPattern
und enumerationOptions
entsprechen.
Ausnahmen
.NET Framework und .NET Core-Versionen, die älter als 2.1 sind: searchPattern
enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars() -Methode definiert wird.
searchPattern
ist null
.
Der Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Wildcardspezifizierer sind in searchPattern
zulässig.
Wildcard-Spezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | Null oder ein Zeichen an dieser Position. |
Andere Zeichen als das Wildcard sind Literalzeichen. Beispielsweise sucht die Zeichenfolge "*t" nach allen Namen, die mit dem Buchstaben "t" enden. Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
Die EnumerateFiles Methoden und GetFiles unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateFiles, können Sie mit dem Aufzählen der Auflistung von FileInfo -Objekten beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array von FileInfo Objekten 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.
Wenn keine Dateien im DirectoryInfovorhanden sind, gibt diese Methode ein leeres Array zurück.
Die folgenden Wildcard-Spezifizierer sind im searchPattern
-Parameter zulässig.
Platzhalter | BESCHREIBUNG |
---|---|
* | Null oder mehr Zeichen. |
? | Genau 0 oder ein Zeichen. |
Die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert; verwenden Sie die Sort -Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Platzhalter sind zulässig. Beispielsweise sucht die searchPattern
Zeichenfolge "*.txt" nach allen Dateinamen mit der Erweiterung "txt". Die searchPattern
Zeichenfolge "s*" sucht nach allen Dateinamen, die mit dem Buchstaben "s" beginnen. Wenn keine Dateien vorhanden sind oder keine Dateien vorhanden sind, die der searchPattern
Zeichenfolge im DirectoryInfoentsprechen, gibt diese Methode ein leeres Array zurück.
Hinweis
Bei Verwendung des Sternchens in einem searchPattern
(z. B. "*.txt") variiert das Abgleichsverhalten abhängig von der Länge der angegebenen Dateierweiterung. Ein searchPattern
mit einer Dateierweiterung von genau drei Zeichen gibt Dateien mit einer Erweiterung von drei oder mehr Zeichen zurück, wobei die ersten drei Zeichen mit der in searchPattern
angegebenen Dateierweiterung übereinstimmen. Ein searchPattern
mit einer Dateierweiterung von einem, zwei oder mehr als drei Zeichen gibt nur Dateien mit Erweiterungen genau dieser Länge zurück, die der im searchPattern
angegebenen Dateierweiterung entsprechen. Bei Verwendung des Fragezeichen-Wildcardzeichens gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Bei zwei Dateien in einem Verzeichnis, "file1.txt" und "file1.txtother", gibt ein Suchmuster von "file?.txt" nur die erste Datei zurück, während das Suchmuster "file*.txt" beide Dateien zurückgibt.
Hinweis
Da diese Methode auf Dateinamen mit dem Dateinamenformat 8.3 und dem langen Dateinamenformat überprüft, gibt ein Suchmuster ähnlich wie "*1*.txt" möglicherweise unerwartete Dateinamen zurück. Wenn Sie beispielsweise ein Suchmuster von "*1*.txt" verwenden, wird "longfilename.txt" zurückgegeben, da das entsprechende 8.3-Dateinamenformat "longf~1.txt" wäre.
Diese Methode füllt die Werte der folgenden FileInfo Eigenschaften vorab auf:
Gilt für:
GetFiles(String, SearchOption)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht. Anhand eines Werts wird bestimmt, ob in Unterverzeichnissen gesucht wird.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFiles : string * System.IO.SearchOption -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, searchOption As SearchOption) As FileInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
- searchOption
- SearchOption
Einer der Enumerationswerte, der angibt, ob nur das aktuelle Verzeichnis oder auch alle Unterverzeichnisse durchsucht werden sollen.
Gibt zurück
Ein Array vom Typ FileInfo.
Ausnahmen
.NET Framework und .NET Core-Versionen, die älter als 2.1 sind: searchPattern
enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars() -Methode definiert wird.
searchPattern
ist null
.
searchOption
ist kein gültiger SearchOption-Wert.
Der Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Das folgende Beispiel zeigt, wie Sie mithilfe verschiedener Suchoptionen eine Liste von Dateien aus einem Verzeichnis abrufen. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Den Dateien log1.txt, log2.txt, test1.txt, test2.txt, test3.txt und ein Unterverzeichnis mit einer Datei mit dem Namen SubFile.txt enthält.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
Hinweise
Die EnumerateFiles Methoden und GetFiles unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateFiles, können Sie mit dem Aufzählen der Auflistung von FileInfo -Objekten beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array von FileInfo Objekten 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.
Wenn keine Dateien im DirectoryInfovorhanden sind, gibt diese Methode ein leeres Array zurück.
Die folgenden Wildcardspezifizierer sind in searchPattern
zulässig.
Platzhalter | BESCHREIBUNG |
---|---|
* (Sternchen) | Null oder mehr Zeichen. |
? (Fragezeichen) | Genau 0 oder ein Zeichen. |
Die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert; verwenden Sie die Sort -Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Platzhalter sind zulässig. Beispielsweise sucht die searchPattern
Zeichenfolge "*.txt" nach allen Dateinamen mit der Erweiterung "txt". Die searchPattern
Zeichenfolge "s*" sucht nach allen Dateinamen, die mit dem Buchstaben "s" beginnen. Wenn keine Dateien vorhanden sind oder keine Dateien vorhanden sind, die der searchPattern
Zeichenfolge im DirectoryInfoentsprechen, gibt diese Methode ein leeres Array zurück.
Hinweis
Bei Verwendung des Sternchens in einem searchPattern
(z. B. "*.txt") variiert das Abgleichsverhalten abhängig von der Länge der angegebenen Dateierweiterung. Ein searchPattern
mit einer Dateierweiterung von genau drei Zeichen gibt Dateien mit einer Erweiterung von drei oder mehr Zeichen zurück, wobei die ersten drei Zeichen mit der in searchPattern
angegebenen Dateierweiterung übereinstimmen. Ein searchPattern
mit einer Dateierweiterung von einem, zwei oder mehr als drei Zeichen gibt nur Dateien mit Erweiterungen genau dieser Länge zurück, die der im searchPattern
angegebenen Dateierweiterung entsprechen. Bei Verwendung des Fragezeichen-Wildcardzeichens gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Bei zwei Dateien in einem Verzeichnis, "file1.txt" und "file1.txtother", gibt ein Suchmuster von "file?.txt" nur die erste Datei zurück, während das Suchmuster "file*.txt" beide Dateien zurückgibt.
Die folgende Liste zeigt das Verhalten unterschiedlicher Längen für den searchPattern
Parameter:
"*.abc" gibt Dateien mit der Erweiterung .abc, .abcd, .abcde, .abcdef usw. zurück.
"*.abcd" gibt nur Dateien mit der Erweiterung .abcd zurück.
"*.abcde" gibt nur Dateien mit der Erweiterung .abcde zurück.
"*.abcdef" gibt nur Dateien mit der Erweiterung .abcdef zurück.
Hinweis
Da diese Methode auf Dateinamen mit dem Dateinamenformat 8.3 und dem langen Dateinamenformat überprüft, gibt ein Suchmuster ähnlich wie "*1*.txt" möglicherweise unerwartete Dateinamen zurück. Wenn Sie beispielsweise ein Suchmuster von "*1*.txt" verwenden, wird "longfilename.txt" zurückgegeben, da das entsprechende 8.3-Dateinamenformat "longf~1.txt" wäre.
Diese Methode füllt die Werte der folgenden FileInfo Eigenschaften vorab auf:
Weitere Informationen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
Gilt für:
GetFiles()
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles();
public System.IO.FileInfo[] GetFiles ();
member this.GetFiles : unit -> System.IO.FileInfo[]
Public Function GetFiles () As FileInfo()
Gibt zurück
Ein Array vom Typ FileInfo.
Ausnahmen
Der Pfad ist ungültig, weil er sich beispielsweise auf einem nicht zugeordneten Laufwerk befindet.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine Liste mit Dateien aus einem Verzeichnis mithilfe verschiedener Suchoptionen abrufen. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Den Dateien log1.txt, log2.txt, test1.txt, test2.txt, test3.txt und ein Unterverzeichnis mit einer Datei mit dem Namen SubFile.txt enthält.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
Hinweise
Die EnumerateFiles Methoden und GetFiles unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateFiles, können Sie mit der Auflistung der FileInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array von FileInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann es daher effizienter sein.
Wenn keine Dateien in vorhanden sind, gibt diese DirectoryInfoMethode ein leeres Array zurück.
Die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert. verwenden Sie die Sort -Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Diese Methode füllt die Werte der folgenden FileInfo Eigenschaften vorab auf:
Weitere Informationen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
Gilt für:
GetFiles(String)
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
- Quelle:
- DirectoryInfo.cs
Gibt eine Dateiliste des aktuellen Verzeichnisses zurück, das dem angegebenen Suchmuster entspricht.
public:
cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern);
public System.IO.FileInfo[] GetFiles (string searchPattern);
member this.GetFiles : string -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String) As FileInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Dateien auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literalpfad- und Platzhalterzeichen (* und ?) enthalten, unterstützt jedoch keine regulären Ausdrücke.
Gibt zurück
Ein Array vom Typ FileInfo.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: searchPattern
enthält mindestens ein ungültiges Zeichen, das von der GetInvalidPathChars() -Methode definiert ist.
searchPattern
ist null
.
Der Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Das folgende Beispiel zeigt, wie Sie eine Liste mit Dateien aus einem Verzeichnis mithilfe verschiedener Suchoptionen abrufen. Im Beispiel wird davon ausgegangen, dass ein Verzeichnis mit Den Dateien log1.txt, log2.txt, test1.txt, test2.txt, test3.txt und ein Unterverzeichnis mit einer Datei mit dem Namen SubFile.txt enthält.
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
Console.WriteLine("No search pattern returns:");
foreach (var fi in di.GetFiles())
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern *2* returns:");
foreach (var fi in di.GetFiles("*2*"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern test?.txt returns:");
foreach (var fi in di.GetFiles("test?.txt"))
{
Console.WriteLine(fi.Name);
}
Console.WriteLine();
Console.WriteLine("Search pattern AllDirectories returns:");
foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
{
Console.WriteLine(fi.Name);
}
}
}
}
/*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*/
open System.IO
let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
printfn $"{fi.Name}"
printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
printfn $"{fi.Name}"
printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
printfn $"{fi.Name}"
printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
printfn $"{fi.Name}"
(*
This code produces output similar to the following:
No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
Search pattern *2* returns:
log2.txt
test2.txt
Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt
Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO
Module Module1
Sub Main()
Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
Console.WriteLine("No search pattern returns:")
For Each fi In di.GetFiles()
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern *2* returns:")
For Each fi In di.GetFiles("*2*")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern test?.txt returns:")
For Each fi In di.GetFiles("test?.txt")
Console.WriteLine(fi.Name)
Next
Console.WriteLine()
Console.WriteLine("Search pattern AllDirectories returns:")
For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
Console.WriteLine(fi.Name)
Next
End Sub
End Module
' This code produces output similar to the following:
' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' Search pattern *2* returns:
' log2.txt
' test2.txt
' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt
' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Wildcard-Spezifizierer sind in searchPattern
zulässig.
Wildcard-Spezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | Null oder ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, die mit dem Buchstaben "t" enden. Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
Die EnumerateFiles Methoden und GetFiles unterscheiden sich wie folgt:
Wenn Sie verwenden EnumerateFiles, können Sie mit der Auflistung der FileInfo Objekte beginnen, bevor die gesamte Auflistung zurückgegeben wird.
Wenn Sie verwenden GetFiles, müssen Sie warten, bis das gesamte Array von FileInfo Objekten zurückgegeben wird, bevor Sie auf das Array zugreifen können.
Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateFiles kann es daher effizienter sein.
Wenn keine Dateien in vorhanden sind, gibt diese DirectoryInfoMethode ein leeres Array zurück.
Die folgenden Feldhalterbezeichner sind im searchPattern
Parameter zulässig.
Platzhalter | BESCHREIBUNG |
---|---|
* | Null oder mehr Zeichen. |
? | Genau null oder ein Zeichen. |
Die Reihenfolge der zurückgegebenen Dateinamen ist nicht garantiert. verwenden Sie die Sort -Methode, wenn eine bestimmte Sortierreihenfolge erforderlich ist.
Platzhalter sind zulässig. Beispielsweise sucht die searchPattern
Zeichenfolge "*.txt" nach allen Dateinamen mit der Erweiterung "txt". Die searchPattern
Zeichenfolge "s*" sucht nach allen Dateinamen, die mit dem Buchstaben "s" beginnen. Wenn keine Dateien oder keine Dateien vorhanden sind, die mit der searchPattern
Zeichenfolge in DirectoryInfoübereinstimmen, gibt diese Methode ein leeres Array zurück.
Hinweis
Bei Verwendung des Sternchen-Platzhalterzeichens in einem searchPattern
(z. B. "*.txt") variiert das Abgleichsverhalten abhängig von der Länge der angegebenen Dateierweiterung. Ein searchPattern
mit einer Dateierweiterung von genau drei Zeichen gibt Dateien mit einer Erweiterung von drei oder mehr Zeichen zurück, wobei die ersten drei Zeichen mit der in searchPattern
angegebenen Dateierweiterung übereinstimmen. Ein searchPattern
mit einer Dateierweiterung von einem, zwei oder mehr als drei Zeichen gibt nur Dateien mit Erweiterungen genau dieser Länge zurück, die der in searchPattern
angegebenen Dateierweiterung entsprechen. Bei Verwendung des Fragezeichenplatzhalters gibt diese Methode nur Dateien zurück, die der angegebenen Dateierweiterung entsprechen. Bei zwei Dateien in einem Verzeichnis, "file1.txt" und "file1.txtother", gibt ein Suchmuster von "file?.txt" nur die erste Datei zurück, während ein Suchmuster von "file*.txt" beide Dateien zurückgibt.
Hinweis
Da diese Methode anhand von Dateinamen mit dem Dateinamenformat 8.3 und dem Langen Dateinamenformat überprüft wird, kann ein Suchmuster ähnlich "*1*.txt" unerwartete Dateinamen zurückgeben. Wenn Sie beispielsweise ein Suchmuster von "*1*.txt" verwenden, wird "longfilename.txt" zurückgegeben, da das entsprechende 8.3-Dateiformat "longf~1.txt" lautet.
Diese Methode füllt die Werte der folgenden FileInfo Eigenschaften vorab auf:
Weitere Informationen
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei