Go

Golangでディレクトリ内のファイル一覧を入手する

More than 1 year has passed since last update.

指定したディレクトリ配下にあるファイル一覧をスライスで返す。

サブディレクトリがあれば再帰で掘っていく。


main.go

package main

import (
"fmt"
"io/ioutil"
"path/filepath"
)

func main() {
fmt.Println(dirwalk("./test"))
}

func dirwalk(dir string) []string {
files, err := ioutil.ReadDir(dir)
if err != nil {
panic(err)
}

var paths []string
for _, file := range files {
if file.IsDir() {
paths = append(paths, dirwalk(filepath.Join(dir, file.Name()))...)
continue
}
paths = append(paths, filepath.Join(dir, file.Name()))
}

return paths
}


$ ls

main.go test

$ tree test
test

├── file
├── test1
│   ├── file1-1
│   └── file1-2
└── test2
├── file2-1
└── file2-2

2 directories, 5 files

$ go run main.go
[test/file test/test1/file1-1 test/test1/file1-2 test/test2/file2-1 test/test2/file2-2]