Condividi tramite


DirectoryInfo.GetFileSystemInfos Metodo

Definizione

Recupera una matrice di oggetti fortemente tipizzati FileSystemInfo che rappresentano file e sottodirectory della directory corrente.

Overload

Nome Descrizione
GetFileSystemInfos()

Restituisce una matrice di voci fortemente tipate FileSystemInfo che rappresentano tutti i file e le sottodirectory in una directory.

GetFileSystemInfos(String)

Recupera una matrice di oggetti fortemente tipizzati FileSystemInfo che rappresentano i file e le sottodirectory corrispondenti ai criteri di ricerca specificati.

GetFileSystemInfos(String, EnumerationOptions)

Recupera una matrice di oggetti fortemente tipizzati FileSystemInfo che rappresentano i file e le sottodirectory corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati.

GetFileSystemInfos(String, SearchOption)

Recupera una matrice di oggetti che rappresentano i file e le sottodirectory corrispondenti ai criteri di FileSystemInfo ricerca specificati.

GetFileSystemInfos()

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Restituisce una matrice di voci fortemente tipate FileSystemInfo che rappresentano tutti i file e le sottodirectory in una directory.

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

Restituisce

Matrice di voci fortemente tipate FileSystemInfo .

Eccezioni

Il percorso non è valido( ad esempio, si trova in un'unità non mappata).

Esempio

L'esempio seguente conta i file e le directory nella directory specificata.

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

Commenti

Se non sono presenti file o directory in DirectoryInfo, questo metodo restituisce una matrice vuota. Questo metodo non è ricorsivo.

Per le sottodirectory, è possibile eseguire il cast degli FileSystemInfo oggetti restituiti da questo metodo alla classe DirectoryInfoderivata . Utilizzare il FileAttributes valore restituito dalla FileSystemInfo.Attributes proprietà per determinare se FileSystemInfo rappresenta un file o una directory.

Questo metodo prepopola i valori delle proprietà seguenti FileSystemInfo :

Vedi anche

Si applica a

GetFileSystemInfos(String)

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Recupera una matrice di oggetti fortemente tipizzati FileSystemInfo che rappresentano i file e le sottodirectory corrispondenti ai criteri di ricerca specificati.

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

Parametri

searchPattern
String

Stringa di ricerca che deve corrispondere ai nomi di directory e file. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.

Restituisce

Matrice di oggetti fortemente tipizzati FileSystemInfo che corrispondono ai criteri di ricerca.

Eccezioni

.NET Framework e versioni di .NET Core precedenti alla 2.1: searchPattern contiene uno o più caratteri non validi definiti dal GetInvalidPathChars() metodo .

searchPattern è null.

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Il chiamante non dispone dell'autorizzazione richiesta.

Esempio

Nell'esempio seguente vengono conteggiato i file e le directory corrispondenti al criterio di ricerca specificato.

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

Commenti

searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.

Identificatore di caratteri jolly Matches
* (asterisco) Zero o più caratteri in tale posizione.
? (punto interrogativo) Zero o un carattere in tale posizione.

I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".

Questo metodo non è ricorsivo.

Per le sottodirectory, è possibile eseguire il cast degli FileSystemInfo oggetti restituiti da questo metodo alla classe DirectoryInfoderivata . Utilizzare il FileAttributes valore restituito dalla FileSystemInfo.Attributes proprietà per determinare se FileSystemInfo rappresenta un file o una directory.

Sono consentiti caratteri jolly. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi path di directory che terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi di directory che path iniziano con la lettera "s".

La stringa ".." può essere usata solo in searchPattern se viene specificata come parte di un nome di directory valido, ad esempio nel nome della directory "a.. b". Non può essere usato per spostare verso l'alto la gerarchia di directory. Se non sono presenti file o directory o nessun file o directory che corrispondono alla searchPattern stringa in DirectoryInfo, questo metodo restituisce una matrice vuota.

Questo metodo prepopola i valori delle proprietà seguenti FileSystemInfo :

Vedi anche

Si applica a

GetFileSystemInfos(String, EnumerationOptions)

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Recupera una matrice di oggetti fortemente tipizzati FileSystemInfo che rappresentano i file e le sottodirectory corrispondenti al criterio di ricerca e alle opzioni di enumerazione specificati.

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

Parametri

searchPattern
String

Stringa di ricerca che deve corrispondere ai nomi di directory e file. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.

enumerationOptions
EnumerationOptions

Oggetto che descrive la configurazione di ricerca ed enumerazione da utilizzare.

Restituisce

Matrice di oggetti fortemente tipizzati FileSystemInfo che corrispondono searchPattern a e enumerationOptions.

Eccezioni

.NET Framework e versioni di .NET Core precedenti alla 2.1: searchPattern contiene uno o più caratteri non validi definiti dal GetInvalidPathChars() metodo .

searchPattern è null.

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Il chiamante non dispone dell'autorizzazione richiesta.

Commenti

searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.

Identificatore di caratteri jolly Matches
* (asterisco) Zero o più caratteri in tale posizione.
? (punto interrogativo) Zero o un carattere in tale posizione.

I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".

Questo metodo non è ricorsivo.

Per le sottodirectory, è possibile eseguire il cast degli FileSystemInfo oggetti restituiti da questo metodo alla classe DirectoryInfoderivata . Utilizzare il FileAttributes valore restituito dalla FileSystemInfo.Attributes proprietà per determinare se FileSystemInfo rappresenta un file o una directory.

Sono consentiti caratteri jolly. Ad esempio, la searchPattern stringa "*t" cerca tutti i nomi path di directory che terminano con la lettera "t". La searchPattern stringa "s*" cerca tutti i nomi di directory che path iniziano con la lettera "s".

La stringa ".." può essere usata solo in searchPattern se viene specificata come parte di un nome di directory valido, ad esempio nel nome della directory "a.. b". Non può essere usato per spostare verso l'alto la gerarchia di directory. Se non sono presenti file o directory o nessun file o directory che corrispondono alla searchPattern stringa in DirectoryInfo, questo metodo restituisce una matrice vuota.

Questo metodo prepopola i valori delle proprietà seguenti FileSystemInfo :

Si applica a

GetFileSystemInfos(String, SearchOption)

Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs
Origine:
DirectoryInfo.cs

Recupera una matrice di oggetti che rappresentano i file e le sottodirectory corrispondenti ai criteri di FileSystemInfo ricerca specificati.

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

Parametri

searchPattern
String

Stringa di ricerca che deve corrispondere ai nomi di directory e file. Questo parametro può contenere una combinazione di caratteri jolly e percorso letterale validi (* e ?), ma non supporta espressioni regolari.

searchOption
SearchOption

Uno dei valori di enumerazione che specifica se l'operazione di ricerca deve includere solo la directory corrente o tutte le sottodirectory. Il valore predefinito è TopDirectoryOnly.

Restituisce

Matrice di voci del file system che corrispondono ai criteri di ricerca.

Eccezioni

.NET Framework e versioni di .NET Core precedenti alla 2.1: searchPattern contiene uno o più caratteri non validi definiti dal GetInvalidPathChars() metodo .

searchPattern è null.

searchOption non è un valore valido SearchOption .

Il percorso specificato non è valido( ad esempio, si trova in un'unità non mappata).

Il chiamante non dispone dell'autorizzazione richiesta.

Commenti

searchPattern può essere una combinazione di caratteri letterali e caratteri jolly, ma non supporta espressioni regolari. Gli identificatori jolly seguenti sono consentiti in searchPattern.

Identificatore di caratteri jolly Matches
* (asterisco) Zero o più caratteri in tale posizione.
? (punto interrogativo) Zero o un carattere in tale posizione.

I caratteri diversi dal carattere jolly sono caratteri letterali. Ad esempio, la stringa "*t" cerca tutti i nomi che terminano con la lettera "t". ". La searchPattern stringa "s*" cerca tutti i nomi che path iniziano con la lettera "s".

Per le sottodirectory, è possibile eseguire il cast degli FileSystemInfo oggetti restituiti da questo metodo alla classe DirectoryInfoderivata . Utilizzare il FileAttributes valore restituito dalla FileSystemInfo.Attributes proprietà per determinare se FileSystemInfo rappresenta un file o una directory.

Questo metodo prepopola i valori delle proprietà seguenti FileSystemInfo :

Vedi anche

Si applica a