Instance Method


Returns a directory enumerator object that can be used to perform a deep enumeration of the directory at the specified path.


func enumerator(atPath path: String) -> FileManager.DirectoryEnumerator?



The path of the directory to enumerate.

Return Value

A FileManager.DirectoryEnumerator object that enumerates the contents of the directory at path.

If path is a filename, the method returns an enumerator object that enumerates no files—the first call to nextObject() will return nil.


Because the enumeration is deep—that is, it lists the contents of all subdirectories—this enumerator object is useful for performing actions that involve large file-system subtrees. This method does not resolve symbolic links encountered in the traversal process, nor does it recurse through them if they point to a directory.

This code fragment enumerates the subdirectories and files under a user’s Documents directory and processes all files with an extension of .doc:

let docsDir = NSHomeDirectory().appending("/Documents")
let localFileManager = FileManager()

let dirEnum = localFileManager.enumerator(atPath: docsDir)

while let file = dirEnum?.nextObject() as? String {
    if file.hasSuffix(".doc") {

The FileManager.DirectoryEnumerator class has methods for obtaining the attributes of the existing path and of the parent directory and for skipping descendants of the existing path.

See Also

Discovering Directory Contents

func contentsOfDirectory(at: URL, includingPropertiesForKeys: [URLResourceKey]?, options: FileManager.DirectoryEnumerationOptions) -> [URL]

Performs a shallow search of the specified directory and returns URLs for the contained items.

func contentsOfDirectory(atPath: String) -> [String]

Performs a shallow search of the specified directory and returns the paths of any contained items.

class FileManager.DirectoryEnumerator

An object that enumerates the contents of a directory.

func subpathsOfDirectory(atPath: String) -> [String]

Performs a deep enumeration of the specified directory and returns the paths of all of the contained subdirectories.

func subpaths(atPath: String) -> [String]?

Returns an array of strings identifying the paths for all items in the specified directory.