非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Go言語:ファイル一覧を取得する方法

   

Go言語で特定フォルダ内のファイル一覧を取得する方法です。

使うパッケージは io/ioutilos です。そこに拡張子判定のために 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]

スポンサーリンク

 - Go言語