説明
ディレクトリ内にあるのがファイルかディレクトリかを調べるにはosパッケージとioutilパッケージを利用します。パッケージを読み込んだらioutil.ReadDir()メソッドのパラメーターに読み込みたいファイルが入っているディレクトリを指定します。ioutil.ReadDir()の戻り値は多値になっていて最初がファイル一覧の情報が入った配列(FileInfoインターフェース)、2番目がエラー情報となっています。ファイル一覧の情報は配列になっているので配列の数だけ繰り返します。これはfor命令とlen()を使うことで取得したファイル/ディレクトリの総数だけ処理することができます。ファイルかディレクトリかを調べるにはIsDir()メソッドを使います。戻り値がtrueならディレクトリ、falseならファイルになります。
package main
import (
"fmt"
"os"
"io/ioutil"
)
func main() {
// 読み込むディレクトリ名
fileList, err := ioutil.ReadDir("/data")
if err != nil {
fmt.Println("ディレクトリ情報が読み込めませんでした。")
os.Exit(1)
}
for i := 0; i<len(fileList); i++ {
fmt.Printf("%s : %v\n", fileList[i].Name(), fileList[i].IsDir())
}
}
実行結果