DirectoryInfo.GetFileSystemInfos Methode

Definitie

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die bestanden en submappen van de huidige map vertegenwoordigen.

Overloads

Name Description
GetFileSystemInfos()

Retourneert een matrix met sterk getypte FileSystemInfo vermeldingen die alle bestanden en submappen in een map vertegenwoordigen.

GetFileSystemInfos(String)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die voldoen aan de opgegeven zoekcriteria.

GetFileSystemInfos(String, EnumerationOptions)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

GetFileSystemInfos(String, SearchOption)

Hiermee haalt u een matrix van FileSystemInfo objecten op die de bestanden en submappen vertegenwoordigen die overeenkomen met de opgegeven zoekcriteria.

GetFileSystemInfos()

Retourneert een matrix met sterk getypte FileSystemInfo vermeldingen die alle bestanden en submappen in een map vertegenwoordigen.

public:
 cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()

Retouren

Een matrix met sterk getypte FileSystemInfo vermeldingen.

Uitzonderingen

Het pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

Voorbeelden

In het volgende voorbeeld worden de bestanden en mappen in de opgegeven map geteld.

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++;
            }
        }
    }
}
open System.IO

let mutable files = 0
let mutable directories = 0

let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) =
    // Check the FSInfo parameter.
    if fsInfo = null then
        nullArg "fsInfo"

    // Iterate through each item.
    for i in fsInfo do
        // Check to see if this is a DirectoryInfo object.
        match i with 
        | :? DirectoryInfo as dInfo ->
            // Add one to the directory count.
            directories <- directories + 1

            // Iterate through all sub-directories.
            listDirectoriesAndFiles (dInfo.GetFileSystemInfos())
        // Check to see if this is a FileInfo object.
        | :? FileInfo ->
            // Add one to the file count.
            files <- files + 1
        | _ -> ()

try
    printfn "Enter the path to a directory:"

    let directory = stdin.ReadLine()

    // Create a new DirectoryInfo object.
    let dir = DirectoryInfo directory

    if not dir.Exists then
        raise (DirectoryNotFoundException "The directory does not exist.")

    // Call the GetFileSystemInfos method.
    let infos = dir.GetFileSystemInfos()

    printfn "Working..."

    // Pass the result to the ListDirectoriesAndFiles
    // method defined below.
    listDirectoriesAndFiles infos

    // Display the results to the console.
    printfn $"Directories: {directories}"
    printfn $"Files: {files}"
with e ->
    printfn $"{e.Message}"
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

Opmerkingen

Als er geen bestanden of mappen in de DirectoryInfomap staan, retourneert deze methode een lege matrix. Deze methode is niet recursief.

Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.

Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:

Zie ook

Van toepassing op

GetFileSystemInfos(String)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die voldoen aan de opgegeven zoekcriteria.

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()

Parameters

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

Retouren

Een matrix van sterk getypte FileSystemInfo objecten die overeenkomen met de zoekcriteria.

Uitzonderingen

.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

searchPattern is null.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

De beller heeft niet de vereiste machtiging.

Voorbeelden

In het volgende voorbeeld worden de bestanden en mappen geteld die overeenkomen met het opgegeven zoekpatroon.

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++;
            }
        }
    }
}
open System
open System.IO

let mutable files = 0
let mutable directories = 0

let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) searchString =
    // Check the parameters.
    if fsInfo = null then
        nullArg "fsInfo"

    if String.IsNullOrEmpty searchString then
        invalidArg "searchString" "Search string cannot be empty."
    
    // Iterate through each item.
    for i in fsInfo do
        // Check to see if this is a DirectoryInfo object.
        match i with
        | :? DirectoryInfo as dInfo ->
            // Add one to the directory count.
            directories <- directories + 1

            // Iterate through all sub-directories.
            listDirectoriesAndFiles (dInfo.GetFileSystemInfos searchString) searchString
        // Check to see if this is a FileInfo object.
        | :? FileInfo ->
            // Add one to the file count.
            files <- files + 1
        | _ -> ()

try
    printfn "Enter the path to a directory:"

    let directory = stdin.ReadLine()

    printfn "Enter a search string (for example *p*):"

    let searchString = stdin.ReadLine()

    // Create a new DirectoryInfo object.
    let dir = DirectoryInfo directory

    if not dir.Exists then
        raise (DirectoryNotFoundException "The directory does not exist.")

    // Call the GetFileSystemInfos method.
    let infos = dir.GetFileSystemInfos searchString

    printfn "Working..."

    // Pass the result to the ListDirectoriesAndFiles
    // method defined below.
    listDirectoriesAndFiles infos searchString

    // Display the results to the console.
    printfn $"Directories: {directories}"
    printfn $"Files: {files}"
with e ->
    printfn $"{e.Message}"
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

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Nul of één teken op die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

Deze methode is niet recursief.

Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.

Jokertekens zijn toegestaan. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle mapnamen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle mapnamen in path het begin met de letter 's'.

De tekenreeks '.' kan alleen worden gebruikt searchPattern als deze is opgegeven als onderdeel van een geldige mapnaam, zoals in de mapnaam a.. b". Het kan niet worden gebruikt om de adreslijsthiërarchie omhoog te verplaatsen. Als er geen bestanden of mappen zijn of geen bestanden of mappen die overeenkomen met de searchPattern tekenreeks in de DirectoryInfo, retourneert deze methode een lege matrix.

Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:

Zie ook

Van toepassing op

GetFileSystemInfos(String, EnumerationOptions)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

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()

Parameters

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

enumerationOptions
EnumerationOptions

Een object dat de zoek- en opsommingsconfiguratie beschrijft die moet worden gebruikt.

Retouren

Een matrix van sterk getypte FileSystemInfo objecten die overeenkomen searchPattern met en enumerationOptions.

Uitzonderingen

.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

searchPattern is null.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

De beller heeft niet de vereiste machtiging.

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Nul of één teken op die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

Deze methode is niet recursief.

Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.

Jokertekens zijn toegestaan. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle mapnamen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle mapnamen in path het begin met de letter 's'.

De tekenreeks '.' kan alleen worden gebruikt searchPattern als deze is opgegeven als onderdeel van een geldige mapnaam, zoals in de mapnaam a.. b". Het kan niet worden gebruikt om de adreslijsthiërarchie omhoog te verplaatsen. Als er geen bestanden of mappen zijn of geen bestanden of mappen die overeenkomen met de searchPattern tekenreeks in de DirectoryInfo, retourneert deze methode een lege matrix.

Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:

Van toepassing op

GetFileSystemInfos(String, SearchOption)

Hiermee haalt u een matrix van FileSystemInfo objecten op die de bestanden en submappen vertegenwoordigen die overeenkomen met de opgegeven zoekcriteria.

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()

Parameters

searchPattern
String

De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.

searchOption
SearchOption

Een van de opsommingswaarden die aangeeft of de zoekbewerking alleen de huidige map of alle submappen moet bevatten. De standaardwaarde is TopDirectoryOnly.

Retouren

Een matrix met bestandssysteemvermeldingen die voldoen aan de zoekcriteria.

Uitzonderingen

.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().

searchPattern is null.

searchOption is geen geldige SearchOption waarde.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

De beller heeft niet de vereiste machtiging.

Opmerkingen

searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.

Jokertekenaanduiding Overeenkomsten
* (sterretje) Nul of meer tekens op die positie.
? (vraagteken) Nul of één teken op die positie.

Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.

Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.

Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:

Zie ook

Van toepassing op