Go言語:ファイル一覧を取得する方法
Go言語で特定フォルダ内のファイル一覧を取得する方法です。
使うパッケージは io/ioutil と os です。そこに拡張子判定のために path も使用しました。いずれも標準パッケージです。
[ad#top-1]
ソースコード
こちらがソースコード。カレントディレクトリ内で拡張子が.goのファイル一覧を表示させます。
package main
import (
"fmt"
"io/ioutil"
"os"
"path"
)
func main() {
dir, _ := os.Getwd() //カレントディレクトリ
//dir := "/home/.../" //フォルダを直接指定する場合
files, err := ioutil.ReadDir(dir)
if err != nil {
panic(err)
}
var paths []string
for _, file := range files {
if !file.IsDir() && path.Ext(file.Name())==".go" {
paths = append(paths, file.Name())
}
}
for _, path := range paths {
fmt.Println(path)
}
}
一旦、取得したファイルを配列pathsに格納した後に、その配列分だけループして出力させています。配列させず直接出力してもよかったのですが、あとでそのファイル一覧を使う前提で配列化させました。
あと、フォルダのアドレスを直接指定したい場合は、11行目をコメントアウトし、12行目を有効にしてください。
//dir, _ := os.Getwd() //カレントディレクトリ
dir := "/home/.../" //フォルダを直接指定する場合
実行
ご覧の通り、フォルダ内のファイル一覧をA列に表示させることができました。
[ad#ad-1]
スポンサーリンク
