DirectoryInfo::EnumerateFiles Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Returns an enumerable collection of file information in the current directory.

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

IEnumerable<FileInfo^>^ EnumerateFiles()

Return Value

Type: System.Collections.Generic::IEnumerable<FileInfo^>^

An enumerable collection of the files in the current directory.

Exception Condition

The path encapsulated in the DirectoryInfo object is invalid (for example, it is on an unmapped drive).


The caller does not have the required permission.

The EnumerateFiles and GetFiles methods differ as follows:

  • When you use EnumerateFiles, you can start enumerating the collection of FileInfo objects before the whole collection is returned.

  • When you use GetFiles, you must wait for the whole array of FileInfo objects to be returned before you can access the array.

Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

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

The returned collection is not cached; each call to the GetEnumerator method on the collection will start a new enumeration.

The following example enumerates the files under a specified directory and uses a LINQ query to return the names of all files that were created before 2009 by checking the value of the CreationTimeUtc property.

If you only need the names of the files, use the static Directory class for better performance. For an example, see the Directory::EnumerateFiles(String^) method.

No code example is currently available or this language may not be supported.

The following example shows how to enumerate files in a directory by using different search options. The example assumes a directory that has files named log1.txt, log2.txt, test1.txt, test2.txt, test3.txt, and a subdirectory that has a file named SubFile.txt.

No code example is currently available or this language may not be supported.

Universal Windows Platform
Available since 10
.NET Framework
Available since 4.0
Available since 4.0
Return to top