Directory.GetDirectories 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 der Unterverzeichnisse zurück, die die angegebenen Kriterien erfüllen.
Überlädt
GetDirectories(String, String, SearchOption) |
Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) zurück, die dem angegebenen Suchmuster im aktuellen Verzeichnis entsprechen. Optional werden Unterverzeichnisse durchsucht. |
GetDirectories(String, String, EnumerationOptions) |
Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen im angegebenen Verzeichnis entsprechen. |
GetDirectories(String, String) |
Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen. |
GetDirectories(String) |
Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) im angegebenen Verzeichnis zurück. |
GetDirectories(String, String, SearchOption)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) zurück, die dem angegebenen Suchmuster im aktuellen Verzeichnis entsprechen. Optional werden Unterverzeichnisse durchsucht.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::SearchOption searchOption);
public static string[] GetDirectories (string path, string searchPattern, System.IO.SearchOption searchOption);
static member GetDirectories : string * string * System.IO.SearchOption -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, searchOption As SearchOption) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Unterverzeichnissen in path
auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literal- und Platzhalterzeichen 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 der vollständigen Namen (einschließlich der Pfade) der Unterverzeichnisse, die den angegebenen Kriterien entsprechen, oder ein leeres Array, wenn keine Verzeichnisse gefunden werden.
Ausnahmen
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
- 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 und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist ein Dateiname.
- oder -
Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar (Beispiel: ungültige erste Zuordnungseinheit einer FAT32-Partition).
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird die Anzahl der Verzeichnisse gezählt, die mit dem angegebenen Buchstaben in einem Pfad beginnen. Es wird nur das Verzeichnis der obersten Ebene durchsucht.
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
string[] dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly);
Console.WriteLine("The number of directories starting with p 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
let dirs = Directory.GetDirectories(@"c:\", "p*", SearchOption.TopDirectoryOnly)
printfn $"The number of directories starting with p 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
Dim dirs As String() = Directory.GetDirectories("c:\", "p*", SearchOption.TopDirectoryOnly)
Console.WriteLine("The number of directories starting with p 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
Der path
Parameter kann relative oder absolute Pfadinformationen angeben, wobei die Groß-/Kleinschreibung nicht beachtet wird. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
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) | Genau ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, searchPattern
path
die mit dem Buchstaben "t" enden. Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
searchPattern
kann nicht in zwei Perioden ("..") enden oder zwei Punkte ("..") gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorCharenthalten, und es kann auch keine ungültigen Zeichen enthalten. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars-Methode ausführen.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt: Wenn Sie EnumerateDirectoriesverwenden, können Sie mit der Auflistung der Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.
Weitere Informationen
- GetCurrentDirectory()
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
Gilt für:
GetDirectories(String, String, EnumerationOptions)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen im angegebenen Verzeichnis entsprechen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public static string[] GetDirectories (string path, string searchPattern, System.IO.EnumerationOptions enumerationOptions);
static member GetDirectories : string * string * System.IO.EnumerationOptions -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String, enumerationOptions As EnumerationOptions) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Unterverzeichnissen in path
auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literal- und Platzhalterzeichen 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 der vollständigen Namen (einschließlich der Pfade) der Unterverzeichnisse, die dem Suchmuster und den Enumerationsoperationen im angegebenen Verzeichnis entsprechen, oder ein leeres Array, wenn keine Verzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Mit GetInvalidPathChars() können Sie Abfragen für ungültige Zeichen ausführen.
- oder -
searchPattern
enthält kein gültiges Muster.
path
oder searchPattern
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist ein Dateiname.
- oder -
Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar (Beispiel: ungültige erste Zuordnungseinheit einer FAT32-Partition).
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Hinweise
Diese Methode gibt alle Unterverzeichnisse direkt unter dem angegebenen Verzeichnis zurück, die dem angegebenen Suchmuster entsprechen. Wenn das angegebene Verzeichnis über keine Unterverzeichnisse verfügt oder keine Unterverzeichnisse mit dem searchPattern
Parameter übereinstimmen, gibt diese Methode ein leeres Array zurück. Es wird nur das oberste Verzeichnis durchsucht. Wenn Sie auch die Unterverzeichnisse durchsuchen möchten, verwenden Sie die GetDirectories(String, String, SearchOption) -Methode, und geben Sie im searchOption
Parameter anAllDirectories.
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) | Genau ein Zeichen in dieser Position. |
Andere Zeichen als das Feldhalter sind Literalzeichen. Die Zeichenfolge "*t" sucht beispielsweise nach allen Namen, searchPattern
path
die mit dem Buchstaben "t" enden. Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
searchPattern
kann nicht in zwei Perioden ("..") enden oder zwei Punkte ("..") gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorCharenthalten, und es kann auch keine ungültigen Zeichen enthalten. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars-Methode ausführen.
Der path
Parameter kann relative oder absolute Pfadinformationen angeben, wobei die Groß-/Kleinschreibung nicht beachtet wird. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt: Wenn Sie EnumerateDirectoriesverwenden, können Sie mit der Auflistung der Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden GetDirectories, müssen Sie warten, bis das gesamte Array von Namen zurückgegeben wird, bevor Sie auf das Array zugreifen können. Wenn Sie mit vielen Dateien und Verzeichnissen arbeiten, EnumerateDirectories kann es daher effizienter sein.
Eine Liste allgemeiner E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.
Gilt für:
GetDirectories(String, String)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Gibt die Namen von Unterverzeichnissen (einschließlich der zugehörigen Pfade) zurück, die dem angegebenen Suchmuster im angegebenen Verzeichnis entsprechen.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path, System::String ^ searchPattern);
public static string[] GetDirectories (string path, string searchPattern);
static member GetDirectories : string * string -> string[]
Public Shared Function GetDirectories (path As String, searchPattern As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Unterverzeichnissen in path
auf Übereinstimmungen. Dieser Parameter kann eine Kombination aus gültigen Literal- und Platzhalterzeichen enthalten, unterstützt jedoch keine regulären Ausdrücke.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich der Pfade) der Unterverzeichnisse, die dem Suchmuster im angegebenen Verzeichnis entsprechen, oder ein leeres Array, wenn keine Verzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework- und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen. Mit GetInvalidPathChars() können Sie Abfragen für ungültige Zeichen ausführen.
- oder -
searchPattern
enthält kein gültiges Muster.
path
oder searchPattern
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist ein Dateiname.
- oder -
Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar (Beispiel: ungültige erste Zuordnungseinheit einer FAT32-Partition).
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird die Anzahl der Verzeichnisse in einem Pfad gezählt, die mit dem angegebenen Buchstaben beginnen.
using namespace System;
using namespace System::IO;
int main()
{
try
{
// Only get subdirectories that begin with the letter "p."
array<String^>^dirs = Directory::GetDirectories( "c:\\", "p*" );
Console::WriteLine( "The number of directories starting with p is {0}.", dirs->Length );
Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
while ( myEnum->MoveNext() )
{
Console::WriteLine( myEnum->Current );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
// Only get subdirectories that begin with the letter "p."
string[] dirs = Directory.GetDirectories(@"c:\", "p*");
Console.WriteLine("The number of directories starting with p 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 subdirectories that begin with the letter "p."
let dirs = Directory.GetDirectories(@"c:\", "p*")
printfn $"The number of directories starting with p 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 subdirectories that begin with the letter "p."
Dim dirs As String() = Directory.GetDirectories("c:\", "p*")
Console.WriteLine("The number of directories starting with p 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
Diese Methode gibt alle Unterverzeichnisse direkt unter dem angegebenen Verzeichnis zurück, die dem angegebenen Suchmuster entsprechen. Wenn das angegebene Verzeichnis keine Unterverzeichnisse enthält oder keine Unterverzeichnisse mit dem searchPattern
Parameter übereinstimmen, gibt diese Methode ein leeres Array zurück. Nur das oberste Verzeichnis wird durchsucht. Wenn Sie auch die Unterverzeichnisse durchsuchen möchten, verwenden Sie die GetDirectories(String, String, SearchOption) -Methode, und geben Sie im searchOption
-Parameter anAllDirectories.
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) | Genau ein Zeichen an dieser Position. |
Andere Zeichen als das Wildcard sind Literalzeichen. Beispielsweise sucht die searchPattern
Zeichenfolge "*t" nach allen Namen, path
die mit dem Buchstaben "t" enden. Die searchPattern
Zeichenfolge "s*" sucht nach allen Namen, path
die mit dem Buchstaben "s" beginnen.
searchPattern
darf nicht mit zwei Punkten ("..") enden oder zwei Punkte ("..") gefolgt von DirectorySeparatorChar oder AltDirectorySeparatorCharenthalten, noch darf er ungültige Zeichen enthalten. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars-Methode ausführen.
Der path
Parameter kann relative oder absolute Pfadinformationen angeben und beachtet nicht die Groß-/Kleinschreibung. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt: Wenn Sie verwenden EnumerateDirectories, können Sie mit dem Aufzählen der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden GetDirectories, 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, EnumerateDirectories wenn Sie mit vielen Dateien und Verzeichnissen arbeiten.
Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.
Weitere Informationen
- GetCurrentDirectory()
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei
Gilt für:
GetDirectories(String)
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
- Quelle:
- Directory.cs
Gibt die Namen der Unterverzeichnisse (einschließlich der Pfade) im angegebenen Verzeichnis zurück.
public:
static cli::array <System::String ^> ^ GetDirectories(System::String ^ path);
public static string[] GetDirectories (string path);
static member GetDirectories : string -> string[]
Public Shared Function GetDirectories (path As String) As String()
Parameter
- path
- String
Der relative oder absolute Pfad zum Verzeichnis, das durchsucht werden soll. Bei dieser Zeichenfolge wird die Groß-/Kleinschreibung nicht berücksichtigt.
Gibt zurück
Ein Array der vollständigen Namen (einschließlich der Pfade) der Unterverzeichnisse im angegebenen Pfad, oder ein leeres Array, wenn keine Verzeichnisse gefunden werden.
Ausnahmen
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
.NET Framework und .NET Core-Versionen älter als 2.1: path
ist eine Zeichenfolge der Länge null, enthält nur Leerzeichen oder enthält ein oder mehrere ungültige Zeichen. Sie können Abfragen für ungültige Zeichen mithilfe der GetInvalidPathChars()-Methode ausführen.
path
ist null
.
Der angegebene Pfad und/oder Dateiname überschreiten die vom System definierte maximale Länge.
path
ist ein Dateiname.
- oder -
Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar (Beispiel: ungültige erste Zuordnungseinheit einer FAT32-Partition).
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel wird ein Array von Datei- oder Verzeichnisnamen in der Befehlszeile verwendet, die Art des Namens bestimmt und entsprechend verarbeitet.
// For Directory::GetFiles and Directory::GetDirectories
// For File::Exists, Directory::Exists
using namespace System;
using namespace System::IO;
using namespace System::Collections;
// Insert logic for processing found files here.
void ProcessFile( String^ path )
{
Console::WriteLine( "Processed file '{0}'.", path );
}
// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
void ProcessDirectory( String^ targetDirectory )
{
// Process the list of files found in the directory.
array<String^>^fileEntries = Directory::GetFiles( targetDirectory );
IEnumerator^ files = fileEntries->GetEnumerator();
while ( files->MoveNext() )
{
String^ fileName = safe_cast<String^>(files->Current);
ProcessFile( fileName );
}
// Recurse into subdirectories of this directory.
array<String^>^subdirectoryEntries = Directory::GetDirectories( targetDirectory );
IEnumerator^ dirs = subdirectoryEntries->GetEnumerator();
while ( dirs->MoveNext() )
{
String^ subdirectory = safe_cast<String^>(dirs->Current);
ProcessDirectory( subdirectory );
}
}
int main( int argc, char *argv[] )
{
for ( int i = 1; i < argc; i++ )
{
String^ path = gcnew String(argv[ i ]);
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 );
}
}
}
// 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
Diese Methode ist mit dem Sternchen (*) identisch GetDirectories(String, String) , das als Suchmuster angegeben ist, sodass alle Unterverzeichnisse zurückgegeben werden. Wenn Sie Unterverzeichnisse durchsuchen müssen, verwenden Sie die GetDirectories(String, String, SearchOption) -Methode, mit der Sie eine Suche nach Unterverzeichnissen mit dem searchOption
-Parameter angeben können.
Die EnumerateDirectories Methoden und GetDirectories unterscheiden sich wie folgt: Wenn Sie verwenden EnumerateDirectories, können Sie mit dem Aufzählen der Auflistung von Namen beginnen, bevor die gesamte Auflistung zurückgegeben wird. Wenn Sie verwenden GetDirectories, 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, EnumerateDirectories 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.
Den von dieser Methode zurückgegebenen Namen wird das Präfix mit den in path
bereitgestellten Verzeichnisinformationen versehen.
Die Groß-/Kleinschreibung des path
Parameters entspricht der des Dateisystems, in dem der Code ausgeführt wird. Beispielsweise wird bei NTFS (dem standardmäßigen Windows-Dateisystem) die Groß-/Kleinschreibung und bei Linux-Dateisystemen die Groß-/Kleinschreibung nicht beachtet.
Eine Liste der allgemeinen E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.
Weitere Informationen
- GetCurrentDirectory()
- Datei- und Stream-E/A
- How to: Lesen von Text aus einer Datei
- How to: Schreiben von Text in eine Datei