<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.5.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/FileManager/contentsOfDirectory(atPath:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "c:objc(cs)NSFileManager(im)contentsOfDirectoryAtPath:error:"
  },
  "title" : "contentsOfDirectory(atPath:)"
}
-->

# contentsOfDirectory(atPath:)

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

```
func contentsOfDirectory(atPath path: String) throws -> [String]
```

## Parameters

`path`

The path to the directory whose contents you want to enumerate.

## Return Value

An array of [`NSString`](/documentation/Foundation/NSString) objects, each of which identifies a file, directory, or symbolic link contained in `path`. Returns an empty array if the directory exists but has no contents. In Objective-C, if an error occurs, this method returns `nil` and assigns an appropriate error object to the `error` parameter.

## 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 (files that begin with a period character). If you need to perform a deep enumeration, use the [`enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:`](/documentation/Foundation/NSFileManager/enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:) method instead.

The order of the files in the returned array is undefined.

> Handling Errors in Swift:
> 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](https://docs.swift.org/swift-book/LanguageGuide/ErrorHandling.html) in [The Swift Programming Language](https://docs.swift.org/swift-book/) and `About Imported Cocoa Error Parameters`.

## See Also

[`fileExists(atPath:isDirectory:)`](/documentation/Foundation/FileManager/fileExists(atPath:isDirectory:))

Returns a Boolean value that indicates whether a file or directory exists at a specified path.

[`currentDirectoryPath`](/documentation/Foundation/FileManager/currentDirectoryPath)

The path to the program’s current directory.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)