DirectoryInfo.GetFileSystemInfos 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.
Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das Dateien und Unterverzeichnisse des aktuellen Verzeichnisses darstellt.
Überlädt
GetFileSystemInfos() |
Gibt ein Array von stark typisierten FileSystemInfo-Einträgen zurück, das alle Dateien und Unterverzeichnisse in einem Verzeichnis darstellt. |
GetFileSystemInfos(String) |
Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die den angegebenen Suchkriterien entsprechen. |
GetFileSystemInfos(String, EnumerationOptions) |
Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen. |
GetFileSystemInfos(String, SearchOption) |
Ruft ein Array von FileSystemInfo-Objekten ab, die die Dateien und Unterverzeichnisse darstellen, die den angegebenen Suchkriterien entsprechen. |
GetFileSystemInfos()
Gibt ein Array von stark typisierten FileSystemInfo-Einträgen zurück, das alle Dateien und Unterverzeichnisse in einem Verzeichnis darstellt.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos ();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
Gibt zurück
Ein Array von stark typisierten FileSystemInfo-Einträgen.
Ausnahmen
Der Pfad ist ungültig (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).
Beispiele
Im folgenden Beispiel werden die Dateien und Verzeichnisse unter dem angegebenen Verzeichnis zählungen.
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos();
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo)
{
// Check the FSInfo parameter.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos());
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos()
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo)
' Check the FSInfo parameter.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos())
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
Hinweise
Wenn keine Dateien oder Verzeichnisse im enthalten DirectoryInfo sind, gibt diese Methode ein leeres Array zurück. Diese Methode ist nicht rekursiv.
Bei Unterverzeichnissen können die von dieser Methode zurückgegebenen Objekte FileSystemInfo in die abgeleitete Klasse umgeleitet DirectoryInfo werden. Verwenden Sie FileAttributes den von der -Eigenschaft FileSystemInfo.Attributes zurückgegebenen Wert, um zu bestimmen, ob FileSystemInfo eine Datei oder ein Verzeichnis darstellt.
Diese Methode füllt die Werte der folgenden Eigenschaften vorab FileSystemInfo auf:
Siehe auch
- FileSystemInfo
- FileSystemWatcher
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für
GetFileSystemInfos(String)
Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die den angegebenen Suchkriterien entsprechen.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern);
member this.GetFileSystemInfos : string -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String) As FileSystemInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen und 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 von stark typisierten FileSystemInfo
-Objekten, die den Suchkriterien entsprechen.
Ausnahmen
.NET Framework und .NET Core-Versionen vor 2.1: enthält ein oder mehrere ungültige Zeichen, searchPattern
die von der -Methode definiert GetInvalidPathChars() wurden.
searchPattern
ist null
.
Der angegebene Pfad ist ungültig (er befindet sich z. B. auf einem nicht zugeordneten Laufwerk).
Der Aufrufer verfügt nicht über die erforderliche Berechtigung.
Beispiele
Im folgenden Beispiel werden die Dateien und Verzeichnisse zählt, die dem angegebenen Suchmuster entsprechen.
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
Console.WriteLine("Enter a search string (for example *p*):");
string searchString = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos, searchString);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
{
// Check the parameters.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
if (SearchString == null || SearchString.Length == 0)
{
throw new ArgumentNullException("SearchString");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
Console.WriteLine("Enter a search string (for example *p*):")
Dim searchString As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos(searchString)
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos, searchString)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo, ByVal SearchString As String)
' Check the parameters.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
If SearchString Is Nothing OrElse SearchString.Length = 0 Then
Throw New ArgumentNullException("SearchString")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString)
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
Hinweise
searchPattern
kann eine Kombination von Literal-und Platzhalterzeichen, jedoch werden reguläre Ausdrücke nicht unterstützt. Die folgenden Platzhalterspezifizierer sind in searchPattern
zulässig.
Platzhalterspezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | 0 (null) oder ein Zeichen an dieser Position. |
Andere Zeichen als der Platzhalter sind Literalzeichen. Beispielsweise sucht die Zeichenfolge * "t" nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge * "s" sucht nach allen Namen, beginnend mit dem Buchstaben path
"s".
Diese Methode ist nicht rekursiv.
Bei Unterverzeichnissen können die von dieser Methode zurückgegebenen Objekte FileSystemInfo in die abgeleitete Klasse umgeleitet DirectoryInfo werden. Verwenden Sie FileAttributes den von der -Eigenschaft FileSystemInfo.Attributes zurückgegebenen Wert, um zu bestimmen, ob FileSystemInfo eine Datei oder ein Verzeichnis darstellt.
Platzhalter sind zulässig. Beispielsweise sucht die searchPattern
Zeichenfolge * "t" nach allen Verzeichnisnamen, die mit dem Buchstaben path
"t" enden. Die searchPattern
Zeichenfolge * "s" sucht nach allen Verzeichnisnamen, beginnend mit dem Buchstaben path
"s".
Die Zeichenfolge ".." kann nur in verwendet werden, wenn sie als Teil eines gültigen Verzeichnisnamens angegeben wird, z. B. im searchPattern
Verzeichnisnamen "a.. b". Sie kann nicht verwendet werden, um die Verzeichnishierarchie nach oben zu verschieben. Wenn keine Dateien oder Verzeichnisse oder keine Dateien oder Verzeichnisse mit der Zeichenfolge im übereinstimmen, gibt diese Methode searchPattern
DirectoryInfo ein leeres Array zurück.
Diese Methode füllt die Werte der folgenden Eigenschaften vorab FileSystemInfo auf:
Siehe auch
- FileSystemInfo
- FileSystemWatcher
- Datei- und Stream-E/A
- Vorgehensweise: Lesen von Text aus einer Datei
- Vorgehensweise: Schreiben von Text in eine Datei
Gilt für
GetFileSystemInfos(String, EnumerationOptions)
Ruft ein Array von stark typisierten FileSystemInfo-Objekten ab, das die Dateien und Unterverzeichnisse darstellt, die dem angegebenen Suchmuster und den angegebenen Enumerationsoptionen entsprechen.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFileSystemInfos : string * System.IO.EnumerationOptions -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, enumerationOptions As EnumerationOptions) As FileSystemInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen und 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 FileSystemInfo
-Objekten, die searchPattern
und enumerationOptions
entsprechen.
Ausnahmen
.NET Framework und .NET Core-Versionen vor 2.1: enthält ein oder mehrere ungültige Zeichen, searchPattern
die von der -Methode definiert GetInvalidPathChars() wurden.
searchPattern
ist null
.
Der angegebene Pfad ist ungültig (er befindet sich z. B. 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 Platzhalterspezifizierer sind in searchPattern
zulässig.
Platzhalterspezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | 0 (null) oder ein Zeichen an dieser Position. |
Andere Zeichen als der Platzhalter sind Literalzeichen. Beispielsweise sucht die Zeichenfolge * "t" nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge * "s" sucht nach allen Namen, beginnend mit dem Buchstaben path
"s".
Diese Methode ist nicht rekursiv.
Bei Unterverzeichnissen können die von dieser Methode zurückgegebenen Objekte FileSystemInfo in die abgeleitete Klasse umgeleitet DirectoryInfo werden. Verwenden Sie FileAttributes den von der -Eigenschaft FileSystemInfo.Attributes zurückgegebenen Wert, um zu bestimmen, ob FileSystemInfo eine Datei oder ein Verzeichnis darstellt.
Platzhalter sind zulässig. Beispielsweise sucht die searchPattern
Zeichenfolge * "t" nach allen Verzeichnisnamen, die mit dem Buchstaben path
"t" enden. Die searchPattern
Zeichenfolge * "s" sucht nach allen Verzeichnisnamen, beginnend mit dem Buchstaben path
"s".
Die Zeichenfolge ".." kann nur in verwendet werden, wenn sie als Teil eines gültigen Verzeichnisnamens angegeben wird, z. B. im searchPattern
Verzeichnisnamen "a.. b". Sie kann nicht verwendet werden, um die Verzeichnishierarchie nach oben zu verschieben. Wenn keine Dateien oder Verzeichnisse oder keine Dateien oder Verzeichnisse mit der Zeichenfolge im übereinstimmen, gibt diese Methode searchPattern
DirectoryInfo ein leeres Array zurück.
Diese Methode füllt die Werte der folgenden Eigenschaften vorab FileSystemInfo auf:
Gilt für
GetFileSystemInfos(String, SearchOption)
Ruft ein Array von FileSystemInfo-Objekten ab, die die Dateien und Unterverzeichnisse darstellen, die den angegebenen Suchkriterien entsprechen.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileSystemInfo[] GetFileSystemInfos (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFileSystemInfos : string * System.IO.SearchOption -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, searchOption As SearchOption) As FileSystemInfo()
Parameter
- searchPattern
- String
Die Suchzeichenfolge für die Überprüfung der Namen von Verzeichnissen und 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. Der Standardwert ist TopDirectoryOnly.
Gibt zurück
Ein Array von Dateisystemeinträgen, die den Suchkriterien entsprechen.
Ausnahmen
.NET Framework und .NET Core-Versionen vor 2.1: enthält ein oder mehrere ungültige Zeichen, searchPattern
die von der -Methode definiert GetInvalidPathChars() wurden.
searchPattern
ist null
.
searchOption
ist kein gültiger SearchOption -Wert.
Der angegebene Pfad ist ungültig (er befindet sich z. B. 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 Platzhalterspezifizierer sind in searchPattern
zulässig.
Platzhalterspezifizierer | Treffer |
---|---|
* (Sternchen) | Null oder mehr Zeichen an dieser Position. |
? (Fragezeichen) | 0 (null) oder ein Zeichen an dieser Position. |
Andere Zeichen als der Platzhalter sind Literalzeichen. Beispielsweise sucht die Zeichenfolge * "t" nach allen Namen, die mit dem Buchstaben "t" enden. ". Die searchPattern
Zeichenfolge * "s" sucht nach allen Namen, beginnend mit dem Buchstaben path
"s".
Bei Unterverzeichnissen können die von dieser Methode zurückgegebenen Objekte FileSystemInfo in die abgeleitete Klasse umgeleitet DirectoryInfo werden. Verwenden Sie FileAttributes den von der -Eigenschaft FileSystemInfo.Attributes zurückgegebenen Wert, um zu bestimmen, ob FileSystemInfo eine Datei oder ein Verzeichnis darstellt.
Diese Methode füllt die Werte der folgenden Eigenschaften vorab FileSystemInfo auf: