DirectoryInfo.GetFileSystemInfos Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios do subdiretório atual.
Sobrecargas
GetFileSystemInfos() |
Retorna uma matriz de entradas FileSystemInfo fortemente tipadas que representa todos os arquivos e os subdiretórios em um diretório. |
GetFileSystemInfos(String) |
Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios que correspondem aos critérios de pesquisa especificados. |
GetFileSystemInfos(String, EnumerationOptions) |
Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios que correspondem às opções especificadas de padrão de pesquisa e enumeração. |
GetFileSystemInfos(String, SearchOption) |
Recupera uma matriz de objetos FileSystemInfo que representam os arquivos e subdiretórios que correspondem aos critérios de pesquisa especificados. |
GetFileSystemInfos()
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Retorna uma matriz de entradas FileSystemInfo fortemente tipadas que representa todos os arquivos e os subdiretórios em 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()
Retornos
Uma matriz de entradas FileSystemInfo fortemente tipadas.
Exceções
O caminho é inválido (por exemplo, ele está em uma unidade não mapeada).
Exemplos
O exemplo a seguir conta os arquivos e diretórios no 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
Comentários
Se não houver arquivos ou diretórios no DirectoryInfo, esse método retornará uma matriz vazia. Esse método não é recursivo.
Para subdiretórios, os FileSystemInfo objetos retornados por esse método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor retornado pela FileSystemInfo.Attributes propriedade para determinar se o FileSystemInfo representa um arquivo ou um diretório.
Esse método preenche previamente os valores das seguintes FileSystemInfo propriedades:
Confira também
- FileSystemInfo
- FileSystemWatcher
- E/S de arquivo e de fluxo
- Como ler texto de um arquivo
- Como gravar texto em um arquivo
Aplica-se a
GetFileSystemInfos(String)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos 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 correspondência com os nomes de diretórios e arquivos. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.
Retornos
Uma matriz de objetos FileSystemInfo
fortemente tipados que correspondem aos critérios de pesquisa.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Exemplos
O exemplo a seguir conta os arquivos 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
Comentários
searchPattern
pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern
.
Especificador curinga | Corresponde a |
---|---|
* (asterisco) | Zero ou mais caracteres nessa posição. |
? (ponto de interrogação) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes no path
início com a letra "s".
Esse método não é recursivo.
Para subdiretórios, os FileSystemInfo objetos retornados por esse método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor retornado pela FileSystemInfo.Attributes propriedade para determinar se o FileSystemInfo representa um arquivo ou um diretório.
Curingas são permitidos. Por exemplo, a searchPattern
cadeia de caracteres "*t" pesquisa todos os nomes de diretório ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes de diretório no path
início com a letra "s".
A cadeia de caracteres ".." só poderá ser usada em searchPattern
se for especificada como parte de um nome de diretório válido, como no nome do diretório "a.. b". Ele não pode ser usado para mover para cima a hierarquia de diretórios. Se não houver arquivos ou diretórios ou nenhum arquivo ou diretório que corresponda à searchPattern
cadeia de caracteres no DirectoryInfo, esse método retornará uma matriz vazia.
Esse método preenche previamente os valores das seguintes FileSystemInfo propriedades:
Confira também
- FileSystemInfo
- FileSystemWatcher
- E/S de arquivo e de fluxo
- Como ler texto de um arquivo
- Como gravar texto em um arquivo
Aplica-se a
GetFileSystemInfos(String, EnumerationOptions)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Recupera uma matriz de objetos FileSystemInfo fortemente tipados que representam os arquivos e subdiretórios que correspondem às opções especificadas de padrão de pesquisa e 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 correspondência com os nomes de diretórios e arquivos. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.
- enumerationOptions
- EnumerationOptions
Um objeto que descreve a configuração de pesquisa e enumeração a ser usada.
Retornos
Uma matriz de objetos FileSystemInfo
fortemente tipados que correspondem a searchPattern
e enumerationOptions
.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Comentários
searchPattern
pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern
.
Especificador curinga | Corresponde a |
---|---|
* (asterisco) | Zero ou mais caracteres nessa posição. |
? (ponto de interrogação) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes no path
início com a letra "s".
Esse método não é recursivo.
Para subdiretórios, os FileSystemInfo objetos retornados por esse método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor retornado pela FileSystemInfo.Attributes propriedade para determinar se o FileSystemInfo representa um arquivo ou um diretório.
Curingas são permitidos. Por exemplo, a searchPattern
cadeia de caracteres "*t" pesquisa todos os nomes de diretório ao path
terminar com a letra "t". A searchPattern
cadeia de caracteres "s*" pesquisa todos os nomes de diretório no path
início com a letra "s".
A cadeia de caracteres ".." só poderá ser usada em searchPattern
se for especificada como parte de um nome de diretório válido, como no nome do diretório "a.. b". Ele não pode ser usado para mover para cima a hierarquia de diretórios. Se não houver arquivos ou diretórios ou nenhum arquivo ou diretório que corresponda à searchPattern
cadeia de caracteres no DirectoryInfo, esse método retornará uma matriz vazia.
Esse método preenche previamente os valores das seguintes FileSystemInfo propriedades:
Aplica-se a
GetFileSystemInfos(String, SearchOption)
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
- Origem:
- DirectoryInfo.cs
Recupera uma matriz de objetos FileSystemInfo que representam os arquivos 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 correspondência com os nomes de diretórios e arquivos. Esse parâmetro pode conter uma combinação de caracteres curinga (* e ?) e caminho de literal, mas não dá suporte a expressões regulares.
- searchOption
- SearchOption
Um dos valores de enumeração que especifica se a operação de pesquisa deve incluir somente o diretório atual ou todos os subdiretórios. O valor padrão é TopDirectoryOnly.
Retornos
Uma matriz de entradas do sistema de arquivos que correspondem aos critérios de pesquisa.
Exceções
.NET Framework e versões do .NET Core anteriores à 2.1: searchPattern
contém um ou mais caracteres inválidos definidos pelo GetInvalidPathChars() método .
searchPattern
é null
.
searchOption
não é um valor SearchOption válido.
O caminho especificado é inválido (por exemplo, ele está em uma unidade não mapeada).
O chamador não tem a permissão necessária.
Comentários
searchPattern
pode ser uma combinação de caracteres literais e curinga, mas não dá suporte a expressões regulares. Os especificadores curinga a seguir são permitidos em searchPattern
.
Especificador curinga | Corresponde a |
---|---|
* (asterisco) | Zero ou mais caracteres nessa posição. |
? (ponto de interrogação) | Zero ou um caractere nessa posição. |
Caracteres diferentes do curinga são caracteres literais. Por exemplo, a cadeia de caracteres "*t" pesquisa todos os nomes ao terminar com a letra "t". ". A searchPattern
cadeia de caracteres "s*" procura todos os nomes no path
início com a letra "s".
Para subdiretórios, os FileSystemInfo objetos retornados por esse método podem ser convertidos na classe DirectoryInfoderivada . Use o FileAttributes valor retornado pela FileSystemInfo.Attributes propriedade para determinar se o FileSystemInfo representa um arquivo ou um diretório.
Esse método preenche previamente os valores das seguintes FileSystemInfo propriedades: