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)

public FileSystemInfo[] GetFileSystemInfos()

Return Value

Type: System.IO.FileSystemInfo[]

An array of strongly typed FileSystemInfo entries.

Exception Condition

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.

using System;
using System.IO;

class DirectoryFileCount

    static long files = 0;
    static long directories = 0;

    static void Main()
            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();


            // Pass the result to the ListDirectoriesAndFiles
            // method defined below.

            // Display the results to the console. 
            Console.WriteLine("Directories: {0}", directories);
            Console.WriteLine("Files: {0}", files);

        catch (Exception e)


    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.

                // Cast the object to a DirectoryInfo object.
                DirectoryInfo dInfo = (DirectoryInfo)i;

                // Iterate through all sub-directories.
            // Check to see if this is a FileInfo object.
            else if (i is FileInfo)
                // Add one to the file count.



Universal Windows Platform
Available since 10
.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top