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]
スポンサーリンク