Export (0) Print
Expand All

DirectoryInfo.GetFileSystemInfos Method

Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Function GetFileSystemInfos As FileSystemInfo()

Return Value

Type: System.IO.FileSystemInfo()
An array of strongly typed FileSystemInfo entries.

ExceptionCondition
DirectoryNotFoundException

The path is invalid (for example, it is on an unmapped drive).

If there are no files or directories in the DirectoryInfo, this method returns an empty array. This method is not recursive.

For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.

This method pre-populates the values of the following FileSystemInfo properties:

The following example counts the files and directories under the specified directory.

Imports System
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

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft