如何递归遍历文件和目录

TrixTec

尝试运行程序时需要显示所有 .md 文件,我有一个带有 .md 的测试子文件夹,但脚本没有找到它?


import (
    "fmt"
    "log"
    "strings"
    "os"
)

func main() {

    dir, err := os.ReadDir(".")

    if err != nil {
        log.Fatal(err)
    }

    for _, x := range dir {
        if strings.HasSuffix(x.Name(), ".md") {
            fmt.Println(x.Name())
        }
    }
}
奥列格·布图佐夫

您需要使用filepath.WalkDir递归检查目录,或者您可以使用 1.16 中引入的filepath.Walkos.ReadDir将仅在提供的目录中工作。

filepath.Walk(".", func(path string, info fs.FileInfo, err error) error {
    if err != nil {
        fmt.Printf("prevent panic by handling failure accessing a path %q: %v\n", path, err)
        return err
    }

    if strings.HasSuffix(info.Name(), ".md") {
        fmt.Printf("visited file or dir: %q\n", path)
    }

    return nil
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章