---
title: "contentsOfDirectory(at:includingPropertiesForKeys:options:)"
framework: foundation
role: symbol
role_heading: Instance Method
path: "foundation/filemanager/contentsofdirectory(at:includingpropertiesforkeys:options:)"
---

# contentsOfDirectory(at:includingPropertiesForKeys:options:)

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

## Declaration

```swift
func contentsOfDirectory(at url: URL, includingPropertiesForKeys keys: [URLResourceKey]?, options mask: FileManager.DirectoryEnumerationOptions = []) throws -> [URL]
```

## Parameters

- `url`: The URL for the directory whose contents you want to enumerate.
- `keys`: An array of keys that identify the file properties that you want pre-fetched for each item in the directory. For each returned URL, the specified properties are fetched and cached in the doc://com.apple.foundation/documentation/Foundation/NSURL object. For a list of keys you can specify, see doc://com.apple.documentation/documentation/CoreFoundation/common-file-system-resource-keys. If you want directory contents to have no pre-fetched file properties, pass an empty array to this parameter. If you want directory contents to have default set of pre-fetched file properties, pass nil to this parameter.
- `mask`: Options for the enumeration. Because this method performs only shallow enumerations, options that prevent descending into subdirectories or packages are not allowed; the only supported option is doc://com.apple.foundation/documentation/Foundation/FileManager/DirectoryEnumerationOptions/skipsHiddenFiles.

## Return Value

Return Value An array of NSURL objects, each of which identifies a file, directory, or symbolic link contained in url. If the directory contains no entries, this method returns an empty array. When using Objective-C, if an error occurs, this method returns nil and assigns an appropriate error object to the error parameter.

## Discussion

Discussion This method performs a shallow search of the directory and therefore does not traverse symbolic links or return the contents of any subdirectories. This method also does not return URLs for the current directory (”.”), parent directory (”..”), or resource forks (files that begin with “._”) but it does return other hidden files. If you need to perform a deep enumeration, use the enumeratorAtURL:includingPropertiesForKeys:options:errorHandler: method instead. The order of the files in the returned array is undefined. note: In Swift, this method returns a nonoptional result and is marked with the throws keyword to indicate that it throws an error in cases of failure. You call this method in a try expression and handle any errors in the catch clauses of a do statement, as described in Error Handling in The Swift Programming Language and About Imported Cocoa Error Parameters.

## See Also

### Discovering directory contents

- [contentsOfDirectory(atPath:)](foundation/filemanager/contentsofdirectory(atpath:).md)
- [enumerator(at:includingPropertiesForKeys:options:errorHandler:)](foundation/filemanager/enumerator(at:includingpropertiesforkeys:options:errorhandler:).md)
- [enumerator(atPath:)](foundation/filemanager/enumerator(atpath:).md)
- [FileManager.DirectoryEnumerator](foundation/filemanager/directoryenumerator.md)
- [mountedVolumeURLs(includingResourceValuesForKeys:options:)](foundation/filemanager/mountedvolumeurls(includingresourcevaluesforkeys:options:).md)
- [FileManager.VolumeEnumerationOptions](foundation/filemanager/volumeenumerationoptions.md)
- [subpathsOfDirectory(atPath:)](foundation/filemanager/subpathsofdirectory(atpath:).md)
- [subpaths(atPath:)](foundation/filemanager/subpaths(atpath:).md)
