2016-09-22 3 views
1

ルートディレクトリ内にルートディレクトリ自体を含むファイルのリストを素早く取得する方法があるかどうか不思議です。ルートディレクトリを含むGoのファイルリストを再帰的に返します。

sourceDir, err := os.Open(startPath) 
if err != nil { 
     return err 
} 
defer sourceDir.Close() 

files, err := sourceDir.Readdir(0) 

"startPath"内のすべてのファイル/サブディレクトリは、 "startPath"自体ではありません。 startPathのfileInfoを手動でファイルに手動で追加する必要があります。より速い方法がありますか?

答えて

3

これはfilepath.Walkが対象です。

filepath.Walk(startPath, func(path string, info os.FileInfo, err error) error { 
    fmt.Println(path) 
    if err != nil { 
     fmt.Println("ERROR:", err) 
    } 
    return nil 
}) 

これは、再帰的にすべてのファイル名を出力します

関連する問題