Compartir a través de


DirectoryInfo.GetFileSystemInfos Método

Definición

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios del directorio actual.

Sobrecargas

GetFileSystemInfos()

Devuelve una matriz de entradas FileSystemInfo fuertemente tipadas que representan todos los archivos y subdirectorios de un directorio.

GetFileSystemInfos(String)

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.

GetFileSystemInfos(String, EnumerationOptions)

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios que coinciden con el patrón de búsqueda y las opciones de enumeración especificados.

GetFileSystemInfos(String, SearchOption)

Recupera una matriz de objetos FileSystemInfo que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.

GetFileSystemInfos()

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

Devuelve una matriz de entradas FileSystemInfo fuertemente tipadas que representan todos los archivos y subdirectorios de un directorio.

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

Devoluciones

Matriz de entradas de FileSystemInfo fuertemente tipadas.

Excepciones

La ruta de acceso no es válida (por ejemplo, está en una unidad no asignada).

Ejemplos

En el ejemplo siguiente se cuentan los archivos y directorios en el directorio especificado.

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

Comentarios

Si no hay archivos o directorios en DirectoryInfo, este método devuelve una matriz vacía. Este método no es recursivo.

En el caso de los subdirectorios, los FileSystemInfo objetos devueltos por este método se pueden convertir a la clase DirectoryInfoderivada . Utilice el FileAttributes valor devuelto por la FileSystemInfo.Attributes propiedad para determinar si FileSystemInfo representa un archivo o un directorio.

Este método rellena previamente los valores de las siguientes FileSystemInfo propiedades:

Consulte también

Se aplica a

GetFileSystemInfos(String)

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

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.

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

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los directorios y archivos. Este parámetro puede contener una combinación de ruta de acceso literal válida y caracteres comodín (* y ?), pero no admite expresiones regulares.

Devoluciones

Matriz de objetos FileSystemInfo fuertemente tipados que coinciden con los criterios de búsqueda.

Excepciones

Versiones de .NET Framework y .NET Core anteriores a la 2.1: searchPattern contiene uno o varios caracteres no válidos definidos por el GetInvalidPathChars() método .

searchPattern es null.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Ejemplos

En el ejemplo siguiente se cuentan los archivos y directorios que coinciden con el patrón de búsqueda especificado.

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

Comentarios

searchPattern puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern.

Especificador de caracteres comodín Coincide
* (asterisco) Cero o más caracteres en esa posición.
? (signo de interrogación) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres path a partir de la letra "s".

Este método no es recursivo.

En el caso de los subdirectorios, los FileSystemInfo objetos devueltos por este método se pueden convertir a la clase DirectoryInfoderivada . Utilice el FileAttributes valor devuelto por la FileSystemInfo.Attributes propiedad para determinar si FileSystemInfo representa un archivo o un directorio.

Se permiten caracteres comodín. Por ejemplo, la searchPattern cadena "*t" busca todos los nombres de directorio al path terminar con la letra "t". La searchPattern cadena "s*" busca todos los nombres path de directorio a partir de la letra "s".

La cadena ".." solo se puede usar en searchPattern si se especifica como parte de un nombre de directorio válido, como en el nombre de directorio "a.". b". No se puede usar para subir la jerarquía de directorios. Si no hay archivos o directorios, o no hay archivos o directorios que coincidan con la searchPattern cadena en DirectoryInfo, este método devuelve una matriz vacía.

Este método rellena previamente los valores de las siguientes FileSystemInfo propiedades:

Consulte también

Se aplica a

GetFileSystemInfos(String, EnumerationOptions)

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

Recupera una matriz de objetos FileSystemInfo fuertemente tipados que representan los archivos y subdirectorios que coinciden con el patrón de búsqueda y las opciones de enumeración especificados.

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

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los directorios y archivos. Este parámetro puede contener una combinación de ruta de acceso literal válida y caracteres comodín (* y ?), pero no admite expresiones regulares.

enumerationOptions
EnumerationOptions

Un objeto que describe la configuración de búsqueda y enumeración que se va a usar.

Devoluciones

Una matriz de objetos FileSystemInfo fuertemente tipados que coinciden con searchPattern y enumerationOptions.

Excepciones

Versiones de .NET Framework y .NET Core anteriores a la 2.1: searchPattern contiene uno o varios caracteres no válidos definidos por el GetInvalidPathChars() método .

searchPattern es null.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Comentarios

searchPattern puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern.

Especificador de caracteres comodín Coincide
* (asterisco) Cero o más caracteres en esa posición.
? (signo de interrogación) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres path a partir de la letra "s".

Este método no es recursivo.

En el caso de los subdirectorios, los FileSystemInfo objetos devueltos por este método se pueden convertir a la clase DirectoryInfoderivada . Utilice el FileAttributes valor devuelto por la FileSystemInfo.Attributes propiedad para determinar si FileSystemInfo representa un archivo o un directorio.

Se permiten caracteres comodín. Por ejemplo, la searchPattern cadena "*t" busca todos los nombres de directorio al path terminar con la letra "t". La searchPattern cadena "s*" busca todos los nombres path de directorio a partir de la letra "s".

La cadena ".." solo se puede usar en searchPattern si se especifica como parte de un nombre de directorio válido, como en el nombre de directorio "a.". b". No se puede usar para subir la jerarquía de directorios. Si no hay archivos o directorios, o no hay archivos o directorios que coincidan con la searchPattern cadena en DirectoryInfo, este método devuelve una matriz vacía.

Este método rellena previamente los valores de las siguientes FileSystemInfo propiedades:

Se aplica a

GetFileSystemInfos(String, SearchOption)

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

Recupera una matriz de objetos FileSystemInfo que representan los archivos y subdirectorios que coinciden con los criterios de búsqueda especificados.

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

Parámetros

searchPattern
String

Cadena de búsqueda que debe coincidir con los nombres de los directorios y archivos. Este parámetro puede contener una combinación de ruta de acceso literal válida y caracteres comodín (* y ?), pero no admite expresiones regulares.

searchOption
SearchOption

Uno de los valores de enumeración que especifica si la operación de búsqueda debe incluir solo el directorio actual o todos los subdirectorios. El valor predeterminado es TopDirectoryOnly.

Devoluciones

Matriz de entradas del sistema de archivos que coinciden con los criterios de búsqueda.

Excepciones

Versiones de .NET Framework y .NET Core anteriores a la 2.1: searchPattern contiene uno o varios caracteres no válidos definidos por el GetInvalidPathChars() método .

searchPattern es null.

searchOption no es un valor SearchOption válido.

La ruta de acceso especificada no es válida (por ejemplo, está en una unidad no asignada).

El llamador no dispone del permiso requerido.

Comentarios

searchPattern puede ser una combinación de caracteres literales y comodín, pero no admite expresiones regulares. Los siguientes especificadores de caracteres comodín se permiten en searchPattern.

Especificador de caracteres comodín Coincide
* (asterisco) Cero o más caracteres en esa posición.
? (signo de interrogación) Cero o un carácter en esa posición.

Los caracteres distintos del carácter comodín son caracteres literales. Por ejemplo, la cadena "*t" busca todos los nombres al terminar con la letra "t". ". La searchPattern cadena "s*" busca todos los nombres a path partir de la letra "s".

En el caso de los subdirectorios, los FileSystemInfo objetos devueltos por este método se pueden convertir a la clase DirectoryInfoderivada . Utilice el FileAttributes valor devuelto por la FileSystemInfo.Attributes propiedad para determinar si FileSystemInfo representa un archivo o un directorio.

Este método rellena previamente los valores de las siguientes FileSystemInfo propiedades:

Consulte también

Se aplica a