NEW: Master Swift design patterns with my latest book! >>

How to read the contents of a directory using FileManager

Written by Paul Hudson    @twostraws

If you want to work with files FileManager almost certainly has the answer, and it's no different in this case: it has a method called contentsOfDirectory(atPath:) that lists all the files in a specific directory. For example, we could have it list all the files in our app's resource directory like this:

let fm = FileManager.default
let path = Bundle.main.resourcePath!

do {
    let items = try fm.contentsOfDirectory(atPath: path)

    for item in items {
        print("Found \(item)")
    }
} catch {
    // failed to read directory – bad permissions, perhaps?
}

In this particular case the try should never fail, but you should still have the catch block in there just in case.

Available from iOS 2.0 – see Hacking with Swift tutorial 1

Did this solution work for you? Please pass it on!

Other people are reading…

About the Swift Knowledge Base

This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.

Test your Swift today

Think you know Swift? My book Swift Coding Challenges will put your Swift skills to the test – it's perfect for job interviews and more!

Click here to visit the Hacking with Swift store >>