DirectoryInfo.GetFileSystemInfos Método

Definição

Recupera um array de objetos fortemente tipados FileSystemInfo que representam ficheiros e subdiretórios do diretório atual.

Sobrecargas

Name Description
GetFileSystemInfos()

Devolve um array de entradas fortemente tipadas FileSystemInfo que representam todos os ficheiros e subdiretórios de um diretório.

GetFileSystemInfos(String)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetFileSystemInfos(String, EnumerationOptions)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem ao padrão de pesquisa especificado e às opções de enumeração.

GetFileSystemInfos(String, SearchOption)

Recupera um array de FileSystemInfo objetos que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa especificados.

GetFileSystemInfos()

Devolve um array de entradas fortemente tipadas FileSystemInfo que representam todos os ficheiros e subdiretórios de um diretório.

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

Devoluções

Um conjunto de entradas fortemente tipadas FileSystemInfo .

Exceções

O caminho é inválido (por exemplo, está num disco não mapeado).

Exemplos

O exemplo seguinte conta os ficheiros e diretórios sob o diretório 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

Observações

Se não houver ficheiros ou diretórios no DirectoryInfo, este método devolve um array vazio. Este método não é recursivo.

Para subdiretórios, os FileSystemInfo objetos devolvidos por este método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor devolvido pela FileSystemInfo.Attributes propriedade para determinar se representa FileSystemInfo um ficheiro ou um diretório.

Este método preprepreenche os valores das seguintes FileSystemInfo propriedades:

Ver também

Aplica-se a

GetFileSystemInfos(String)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa 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

A cadeia de pesquisa para comparar com os nomes dos diretórios e ficheiros. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

Devoluções

Um conjunto de objetos fortemente tipados FileSystemInfo que correspondem aos critérios de pesquisa.

Exceções

.NET Framework e versões .NET Core anteriores à 2.1: searchPattern contém um ou mais caracteres inválidos definidos pelo método GetInvalidPathChars().

searchPattern é null.

O caminho especificado é inválido (por exemplo, está num disco não mapeado).

O interlocutor não tem a permissão necessária.

Exemplos

O exemplo seguinte conta os ficheiros e diretórios que correspondem ao padrão de pesquisa 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

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Zero ou um personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

Este método não é recursivo.

Para subdiretórios, os FileSystemInfo objetos devolvidos por este método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor devolvido pela FileSystemInfo.Attributes propriedade para determinar se representa FileSystemInfo um ficheiro ou um diretório.

Os wild cards são permitidos. Por exemplo, a searchPattern cadeia "*t" procura todos os nomes de diretórios terminando path com a letra "t". A searchPattern cadeia "s*" procura todos os nomes de diretórios começando path pela letra "s".

A cadeia ".." só pode ser usada se searchPattern for especificada como parte de um nome de diretório válido, como no nome de diretório "a.. b". Não pode ser usado para subir na hierarquia de diretórios. Se não existirem ficheiros ou diretórios, ou não existirem ficheiros ou diretórios que correspondam à searchPattern string no DirectoryInfo, este método devolve um array vazio.

Este método preprepreenche os valores das seguintes FileSystemInfo propriedades:

Ver também

Aplica-se a

GetFileSystemInfos(String, EnumerationOptions)

Recupera um array de objetos fortemente tipados FileSystemInfo que representam os ficheiros e subdiretórios que correspondem ao padrão de pesquisa especificado e às opções de enumeração.

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

A cadeia de pesquisa para comparar com os nomes dos diretórios e ficheiros. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

enumerationOptions
EnumerationOptions

Um objeto que descreve a configuração de pesquisa e enumeração a utilizar.

Devoluções

Um array de objetos fortemente tipicados FileSystemInfo que correspondem searchPattern a e enumerationOptions.

Exceções

.NET Framework e versões .NET Core anteriores à 2.1: searchPattern contém um ou mais caracteres inválidos definidos pelo método GetInvalidPathChars().

searchPattern é null.

O caminho especificado é inválido (por exemplo, está num disco não mapeado).

O interlocutor não tem a permissão necessária.

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Zero ou um personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

Este método não é recursivo.

Para subdiretórios, os FileSystemInfo objetos devolvidos por este método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor devolvido pela FileSystemInfo.Attributes propriedade para determinar se representa FileSystemInfo um ficheiro ou um diretório.

Os wild cards são permitidos. Por exemplo, a searchPattern cadeia "*t" procura todos os nomes de diretórios terminando path com a letra "t". A searchPattern cadeia "s*" procura todos os nomes de diretórios começando path pela letra "s".

A cadeia ".." só pode ser usada se searchPattern for especificada como parte de um nome de diretório válido, como no nome de diretório "a.. b". Não pode ser usado para subir na hierarquia de diretórios. Se não existirem ficheiros ou diretórios, ou não existirem ficheiros ou diretórios que correspondam à searchPattern string no DirectoryInfo, este método devolve um array vazio.

Este método preprepreenche os valores das seguintes FileSystemInfo propriedades:

Aplica-se a

GetFileSystemInfos(String, SearchOption)

Recupera um array de FileSystemInfo objetos que representam os ficheiros e subdiretórios que correspondem aos critérios de pesquisa 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

A cadeia de pesquisa para comparar com os nomes dos diretórios e ficheiros. Este parâmetro pode conter uma combinação de caracteres válidos de path literais e wildcard (* e ?), mas não suporta expressões regulares.

searchOption
SearchOption

Um dos valores de enumeração especifica se a operação de pesquisa deve incluir apenas o diretório atual ou todos os subdiretórios. O valor predefinido é TopDirectoryOnly.

Devoluções

Um conjunto de entradas do sistema de ficheiros que correspondem aos critérios de pesquisa.

Exceções

.NET Framework e versões .NET Core anteriores à 2.1: searchPattern contém um ou mais caracteres inválidos definidos pelo método GetInvalidPathChars().

searchPattern é null.

searchOption não é um valor válido SearchOption .

O caminho especificado é inválido (por exemplo, está num disco não mapeado).

O interlocutor não tem a permissão necessária.

Observações

searchPattern pode ser uma combinação de caracteres literais e coringa, mas não suporta expressões regulares. Os seguintes indicadores de wildcard são permitidos em searchPattern.

Especificador de coringa Resultados correspondentes
* (asterisco) Zero ou mais personagens nessa posição.
? (ponto de interrogação) Zero ou um personagem nessa posição.

Personagens que não sejam o coringa são personagens literais. Por exemplo, a cadeia "*t" procura todos os nomes que terminam com a letra "t". ". A searchPattern cadeia "s*" procura todos os nomes começando path pela letra "s".

Para subdiretórios, os FileSystemInfo objetos devolvidos por este método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor devolvido pela FileSystemInfo.Attributes propriedade para determinar se representa FileSystemInfo um ficheiro ou um diretório.

Este método preprepreenche os valores das seguintes FileSystemInfo propriedades:

Ver também

Aplica-se a