Bagikan melalui


DirectoryInfo.GetFileSystemInfos Metode

Definisi

Mengambil array objek yang sangat ditik FileSystemInfo yang mewakili file dan subdirektori direktori saat ini.

Overload

GetFileSystemInfos()

Mengembalikan array entri yang sangat ditik FileSystemInfo yang mewakili semua file dan subdirektori dalam direktori.

GetFileSystemInfos(String)

Mengambil array objek yang ditik FileSystemInfo dengan kuat yang mewakili file dan subdirektori yang cocok dengan kriteria pencarian yang ditentukan.

GetFileSystemInfos(String, EnumerationOptions)

Mengambil array objek yang ditik FileSystemInfo dengan kuat yang mewakili file dan subdirektori yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

GetFileSystemInfos(String, SearchOption)

Mengambil array FileSystemInfo objek yang mewakili file dan subdirektori yang cocok dengan kriteria pencarian yang ditentukan.

GetFileSystemInfos()

Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs

Mengembalikan array entri yang sangat ditik FileSystemInfo yang mewakili semua file dan subdirektori dalam direktori.

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

Mengembalikan

Array entri yang sangat ditik FileSystemInfo .

Pengecualian

Jalur tidak valid (misalnya, berada di drive yang tidak dipetakan).

Contoh

Contoh berikut menghitung file dan direktori di bawah direktori yang ditentukan.

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

Keterangan

Jika tidak ada file atau direktori dalam DirectoryInfo, metode ini mengembalikan array kosong. Metode ini tidak rekursif.

Untuk subdirektori, FileSystemInfo objek yang dikembalikan oleh metode ini dapat ditransmisikan ke kelas DirectoryInfoturunan . Gunakan nilai yang FileAttributes dikembalikan oleh FileSystemInfo.Attributes properti untuk menentukan apakah FileSystemInfo mewakili file atau direktori.

Metode ini telah mengisi nilai properti berikut FileSystemInfo :

Lihat juga

Berlaku untuk

GetFileSystemInfos(String)

Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs

Mengambil array objek yang ditik FileSystemInfo dengan kuat yang mewakili file dan subdirektori yang cocok dengan kriteria pencarian yang ditentukan.

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

Parameter

searchPattern
String

String pencarian yang cocok dengan nama direktori dan file. Parameter ini dapat berisi kombinasi jalur harfiah yang valid dan karakter kartubebas (* dan ?), tetapi tidak mendukung ekspresi reguler.

Mengembalikan

Array objek yang sangat ditik FileSystemInfo yang cocok dengan kriteria pencarian.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: searchPattern berisi satu atau beberapa karakter yang tidak valid yang GetInvalidPathChars() ditentukan oleh metode .

searchPatternadalah null.

Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).

Pemanggil tidak memiliki izin yang diperlukan.

Contoh

Contoh berikut menghitung file dan direktori yang cocok dengan pola pencarian yang ditentukan.

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

Keterangan

searchPattern dapat menjadi kombinasi karakter literal dan kartubebas, tetapi tidak mendukung ekspresi reguler. Penentu kartubebas berikut diizinkan di searchPattern.

Penentu kartubebas Cocok
* (tanda bintang) Nol atau lebih karakter dalam posisi tersebut.
? (tanda tanya) Nol atau satu karakter dalam posisi tersebut.

Karakter selain kartubebas adalah karakter harfiah. Misalnya, string "*t" mencari semua nama yang berakhiran dengan huruf "t". ". String searchPattern "s*" mencari semua nama yang path dimulai dengan huruf "s".

Metode ini tidak rekursif.

Untuk subdirektori, FileSystemInfo objek yang dikembalikan oleh metode ini dapat ditransmisikan ke kelas DirectoryInfoturunan . Gunakan nilai yang FileAttributes dikembalikan oleh FileSystemInfo.Attributes properti untuk menentukan apakah FileSystemInfo mewakili file atau direktori.

Kartubebas diizinkan. Misalnya, searchPattern string "*t" mencari semua nama direktori yang path berakhiran dengan huruf "t". String searchPattern "s*" mencari semua nama direktori yang path dimulai dengan huruf "s".

String ".." hanya dapat digunakan jika searchPattern ditentukan sebagai bagian dari nama direktori yang valid, seperti dalam nama direktori "a.. . b". Ini tidak dapat digunakan untuk menaikkan hierarki direktori. Jika tidak ada file atau direktori, atau tidak ada file atau direktori yang cocok dengan searchPattern string dalam DirectoryInfo, metode ini mengembalikan array kosong.

Metode ini telah mengisi nilai properti berikut FileSystemInfo :

Lihat juga

Berlaku untuk

GetFileSystemInfos(String, EnumerationOptions)

Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs

Mengambil array objek yang ditik FileSystemInfo dengan kuat yang mewakili file dan subdirektori yang cocok dengan pola pencarian dan opsi enumerasi yang ditentukan.

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

Parameter

searchPattern
String

String pencarian yang cocok dengan nama direktori dan file. Parameter ini dapat berisi kombinasi jalur harfiah yang valid dan karakter kartubebas (* dan ?), tetapi tidak mendukung ekspresi reguler.

enumerationOptions
EnumerationOptions

Objek yang menjelaskan konfigurasi pencarian dan enumerasi untuk digunakan.

Mengembalikan

Array objek yang sangat ditik FileSystemInfo yang searchPattern cocok dan enumerationOptions.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: searchPattern berisi satu atau beberapa karakter yang tidak valid yang GetInvalidPathChars() ditentukan oleh metode .

searchPatternadalah null.

Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).

Pemanggil tidak memiliki izin yang diperlukan.

Keterangan

searchPattern dapat menjadi kombinasi karakter literal dan kartubebas, tetapi tidak mendukung ekspresi reguler. Penentu kartubebas berikut diizinkan di searchPattern.

Penentu kartubebas Cocok
* (tanda bintang) Nol atau lebih karakter dalam posisi tersebut.
? (tanda tanya) Nol atau satu karakter dalam posisi tersebut.

Karakter selain kartubebas adalah karakter harfiah. Misalnya, string "*t" mencari semua nama yang berakhiran dengan huruf "t". ". String searchPattern "s*" mencari semua nama yang path dimulai dengan huruf "s".

Metode ini tidak rekursif.

Untuk subdirektori, FileSystemInfo objek yang dikembalikan oleh metode ini dapat ditransmisikan ke kelas DirectoryInfoturunan . Gunakan nilai yang FileAttributes dikembalikan oleh FileSystemInfo.Attributes properti untuk menentukan apakah FileSystemInfo mewakili file atau direktori.

Kartubebas diizinkan. Misalnya, searchPattern string "*t" mencari semua nama direktori yang path berakhiran dengan huruf "t". String searchPattern "s*" mencari semua nama direktori yang path dimulai dengan huruf "s".

String ".." hanya dapat digunakan jika searchPattern ditentukan sebagai bagian dari nama direktori yang valid, seperti dalam nama direktori "a.. . b". Ini tidak dapat digunakan untuk menaikkan hierarki direktori. Jika tidak ada file atau direktori, atau tidak ada file atau direktori yang cocok dengan searchPattern string dalam DirectoryInfo, metode ini mengembalikan array kosong.

Metode ini telah mengisi nilai properti berikut FileSystemInfo :

Berlaku untuk

GetFileSystemInfos(String, SearchOption)

Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs
Sumber:
DirectoryInfo.cs

Mengambil array FileSystemInfo objek yang mewakili file dan subdirektori yang cocok dengan kriteria pencarian yang ditentukan.

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

Parameter

searchPattern
String

String pencarian yang cocok dengan nama direktori dan file. Parameter ini dapat berisi kombinasi jalur harfiah yang valid dan karakter kartubebas (* dan ?), tetapi tidak mendukung ekspresi reguler.

searchOption
SearchOption

Salah satu nilai enumerasi yang menentukan apakah operasi pencarian hanya boleh menyertakan direktori saat ini atau semua subdirektori. Nilai defaultnya adalah TopDirectoryOnly.

Mengembalikan

Array entri sistem file yang cocok dengan kriteria pencarian.

Pengecualian

.NET Framework dan .NET Core yang lebih lama dari 2.1: searchPattern berisi satu atau beberapa karakter yang tidak valid yang GetInvalidPathChars() ditentukan oleh metode .

searchPatternadalah null.

searchOption bukan nilai yang valid SearchOption .

Jalur yang ditentukan tidak valid (misalnya, ada di drive yang tidak dipetakan).

Pemanggil tidak memiliki izin yang diperlukan.

Keterangan

searchPattern dapat menjadi kombinasi karakter literal dan kartubebas, tetapi tidak mendukung ekspresi reguler. Penentu kartubebas berikut diizinkan di searchPattern.

Penentu kartubebas Cocok
* (tanda bintang) Nol karakter atau lebih dalam posisi tersebut.
? (tanda tanya) Nol atau satu karakter dalam posisi tersebut.

Karakter selain kartubebas adalah karakter harfiah. Misalnya, string "*t" mencari semua nama yang diakhir dengan huruf "t". ". String searchPattern "s*" mencari semua nama di path awal dengan huruf "s".

Untuk subdirektori, FileSystemInfo objek yang dikembalikan oleh metode ini dapat ditransmisikan ke kelas DirectoryInfoturunan . Gunakan nilai yang FileAttributes dikembalikan oleh FileSystemInfo.Attributes properti untuk menentukan apakah FileSystemInfo mewakili file atau direktori.

Metode ini telah mengisi nilai properti berikut FileSystemInfo :

Lihat juga

Berlaku untuk