Partager via


DirectoryInfo.GetFileSystemInfos Méthode

Définition

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent des fichiers et des sous-répertoires du répertoire actif.

Surcharges

GetFileSystemInfos()

Retourne un tableau d'entrées FileSystemInfo fortement typées représentant tous les fichiers et les sous-répertoires d'un répertoire.

GetFileSystemInfos(String)

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent des fichiers et des sous-répertoires correspondant au critère de recherche spécifié.

GetFileSystemInfos(String, EnumerationOptions)

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent les fichiers et sous-répertoires correspondant au modèle de recherche et aux options d’énumération que vous spécifiez.

GetFileSystemInfos(String, SearchOption)

Récupère un tableau d'objets FileSystemInfo qui représentent les fichiers et les sous-répertoires correspondant au critère de recherche spécifié.

GetFileSystemInfos()

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Retourne un tableau d'entrées FileSystemInfo fortement typées représentant tous les fichiers et les sous-répertoires d'un répertoire.

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

Retours

Tableau d'entrées FileSystemInfo fortement typées.

Exceptions

Le chemin n’est pas valide (par exemple, il est sur un lecteur non mappé).

Exemples

L’exemple suivant compte les fichiers et les répertoires sous le répertoire spécifié.

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

Remarques

S’il n’y a pas de fichiers ou de répertoires dans , DirectoryInfocette méthode retourne un tableau vide. Cette méthode n’est pas récursive.

Pour les sous-répertoires, les FileSystemInfo objets retournés par cette méthode peuvent être castés dans la classe DirectoryInfodérivée . Utilisez la FileAttributes valeur retournée par la FileSystemInfo.Attributes propriété pour déterminer si représente FileSystemInfo un fichier ou un répertoire.

Cette méthode pré-remplit les valeurs des propriétés suivantes FileSystemInfo :

Voir aussi

S’applique à

GetFileSystemInfos(String)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent des fichiers et des sous-répertoires correspondant au critère de recherche spécifié.

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

Paramètres

searchPattern
String

Chaîne recherchée à trouver parmi les noms de répertoires et les noms de fichiers. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques (* et ?), mais il ne prend pas en charge les expressions régulières.

Retours

Tableau d'objets FileSystemInfo fortement typés satisfaisant aux critères de recherche spécifiés.

Exceptions

.NET Framework et .NET Core versions antérieures à 2.1 : searchPattern contient un ou plusieurs caractères non valides définis par la GetInvalidPathChars() méthode.

searchPattern a la valeur null.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).

L'appelant n'a pas l'autorisation requise.

Exemples

L’exemple suivant compte les fichiers et les répertoires qui correspondent au modèle de recherche spécifié.

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

Remarques

searchPattern peut être une combinaison de caractères littéral et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern.

Spécificateur générique Correspond à
* (astérisque) Zéro ou plus caractères dans cette position.
? (point d’interrogation) Zéro ou un caractère dans cette position.

Les caractères autres que le caractère générique sont des caractères littérals. Par exemple, la chaîne « *t » recherche tous les noms se terminant par la lettre « t ». ". La searchPattern chaîne « s* » recherche tous les noms en path commençant par la lettre « s ».

Cette méthode n’est pas récursive.

Pour les sous-répertoires, les FileSystemInfo objets retournés par cette méthode peuvent être castés dans la classe DirectoryInfodérivée . Utilisez la FileAttributes valeur retournée par la FileSystemInfo.Attributes propriété pour déterminer si représente FileSystemInfo un fichier ou un répertoire.

Les caractères génériques sont autorisés. Par exemple, la searchPattern chaîne « *t » recherche tous les noms de répertoires se path terminant par la lettre « t ». La searchPattern chaîne « s* » recherche tous les noms de répertoires en path commençant par la lettre « s ».

La chaîne . » ne peut être utilisée dans que si elle est spécifiée dans searchPattern un nom de répertoire valide, par exemple dans le nom de répertoire « a .. b". Il ne peut pas être utilisé pour monter dans la hiérarchie des répertoires. S’il n’y a pas de fichiers ou de répertoires, ou de fichiers ou de répertoires qui correspondent à la searchPattern chaîne dans , DirectoryInfocette méthode retourne un tableau vide.

Cette méthode pré-remplit les valeurs des propriétés suivantes FileSystemInfo :

Voir aussi

S’applique à

GetFileSystemInfos(String, EnumerationOptions)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Récupère un tableau d'objets FileSystemInfo fortement typés qui représentent les fichiers et sous-répertoires correspondant au modèle de recherche et aux options d’énumération que vous spécifiez.

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

Paramètres

searchPattern
String

Chaîne recherchée à trouver parmi les noms de répertoires et les noms de fichiers. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques (* et ?), mais il ne prend pas en charge les expressions régulières.

enumerationOptions
EnumerationOptions

Objet qui décrit la configuration de recherche et d’énumération à utiliser.

Retours

Tableau d'objets FileSystemInfo fortement typés correspondant à searchPattern et à enumerationOptions.

Exceptions

.NET Framework et .NET Core versions antérieures à 2.1 : searchPattern contient un ou plusieurs caractères non valides définis par la GetInvalidPathChars() méthode.

searchPattern a la valeur null.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).

L'appelant n'a pas l'autorisation requise.

Remarques

searchPattern peut être une combinaison de caractères littéral et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern.

Spécificateur générique Correspond à
* (astérisque) Zéro ou plus caractères dans cette position.
? (point d’interrogation) Zéro ou un caractère dans cette position.

Les caractères autres que le caractère générique sont des caractères littérals. Par exemple, la chaîne « *t » recherche tous les noms se terminant par la lettre « t ». ". La searchPattern chaîne « s* » recherche tous les noms en path commençant par la lettre « s ».

Cette méthode n’est pas récursive.

Pour les sous-répertoires, les FileSystemInfo objets retournés par cette méthode peuvent être castés dans la classe DirectoryInfodérivée . Utilisez la FileAttributes valeur retournée par la FileSystemInfo.Attributes propriété pour déterminer si représente FileSystemInfo un fichier ou un répertoire.

Les caractères génériques sont autorisés. Par exemple, la searchPattern chaîne « *t » recherche tous les noms de répertoires se path terminant par la lettre « t ». La searchPattern chaîne « s* » recherche tous les noms de répertoires en path commençant par la lettre « s ».

La chaîne . » ne peut être utilisée dans que si elle est spécifiée dans searchPattern un nom de répertoire valide, par exemple dans le nom de répertoire « a .. b". Il ne peut pas être utilisé pour monter dans la hiérarchie des répertoires. S’il n’y a pas de fichiers ou de répertoires, ou de fichiers ou de répertoires qui correspondent à la searchPattern chaîne dans , DirectoryInfocette méthode retourne un tableau vide.

Cette méthode pré-remplit les valeurs des propriétés suivantes FileSystemInfo :

S’applique à

GetFileSystemInfos(String, SearchOption)

Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs
Source:
DirectoryInfo.cs

Récupère un tableau d'objets FileSystemInfo qui représentent les fichiers et les sous-répertoires correspondant au critère de recherche spécifié.

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

Paramètres

searchPattern
String

Chaîne recherchée à trouver parmi les noms de répertoires et les noms de fichiers. Ce paramètre peut contenir une combinaison d’un chemin littéral valide et de caractères génériques (* et ?), mais il ne prend pas en charge les expressions régulières.

searchOption
SearchOption

L'une des valeurs d'énumération qui spécifie si l'opération de recherche doit inclure uniquement le répertoire actif ou tous les sous-répertoires. La valeur par défaut est TopDirectoryOnly.

Retours

Tableau d'entrées de système de fichiers qui satisfont aux critères de recherche.

Exceptions

.NET Framework et .NET Core versions antérieures à 2.1 : searchPattern contient un ou plusieurs caractères non valides définis par la GetInvalidPathChars() méthode.

searchPattern a la valeur null.

searchOption n’est pas une valeur de SearchOption valide.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).

L'appelant n'a pas l'autorisation requise.

Remarques

searchPattern peut être une combinaison de caractères littéral et génériques, mais elle ne prend pas en charge les expressions régulières. Les spécificateurs génériques suivants sont autorisés dans searchPattern.

Spécificateur générique Correspond à
* (astérisque) Zéro ou plus caractères dans cette position.
? (point d’interrogation) Zéro ou un caractère dans cette position.

Les caractères autres que le caractère générique sont des caractères littérals. Par exemple, la chaîne « *t » recherche tous les noms se terminant par la lettre « t ». ". La searchPattern chaîne « s* » recherche tous les noms en path commençant par la lettre « s ».

Pour les sous-répertoires, les FileSystemInfo objets retournés par cette méthode peuvent être castés dans la classe DirectoryInfodérivée . Utilisez la FileAttributes valeur retournée par la FileSystemInfo.Attributes propriété pour déterminer si représente FileSystemInfo un fichier ou un répertoire.

Cette méthode pré-remplit les valeurs des propriétés suivantes FileSystemInfo :

Voir aussi

S’applique à