【问题标题】:Return list of files recursively in Go, including root directory在 Go 中递归返回文件列表,包括根目录
【发布时间】:2016-09-23 04:28:49
【问题描述】:

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

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

 files, err := sourceDir.Readdir(0)

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

【问题讨论】:

    标签: go


    【解决方案1】:

    这就是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
    })
    

    【讨论】:

      猜你喜欢
      • 2010-09-11
      • 2019-05-11
      • 1970-01-01
      • 2020-08-16
      • 2018-07-13
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 2011-12-17
      相关资源
      最近更新 更多