DirectoryInfo.GetFileSystemInfos Methode

Definition

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

FileSystemInfo[]

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

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

FileSystemInfo[]

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

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

FileSystemInfo[]

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

FileSystemInfo[]

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:

Siehe auch

Gilt für