List directory in Go

I’ve been trying to figure out how to simply list the files and folders in a single directory in Go.

I’ve found filepath.Walk , but it goes into sub-directories automatically, which I don’t want. All of my other searches haven’t turned anything better up.

I’m sure that this functionality exists, but it’s been really hard to find. Let me know if anyone knows where I should look. Thanks.

You can try using the ReadDir function in the io/ioutil package. Per the docs:

ReadDir reads the directory named by dirname and returns a list of sorted directory entries.

The resulting slice contains os.FileInfo types, which provide the methods listed here. Here is a basic example that lists the name of everything in the current directory (folders are included but not specially marked - you can check if an item is a folder by using the IsDir() method):

package main

import (

func main() {
    files, err := ioutil.ReadDir("./")
    if err != nil {

    for _, f := range files {