在Go中递归返回文件列表,包括根目录

时间:2016-09-22 20:22:29

标签: go

想知道是否有快速获取根目录中包含根目录本身的文件列表的方法。

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

 files, err := sourceDir.Readdir(0)

这只是" startPath"中的所有文件/子目录。不是" startPath"本身。我必须手动将startPath的fileInfo附加到文件中。有更快的方法吗?

1 个答案:

答案 0 :(得分: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
})