使用filepath.Walk
path/filepath 标准库的包提供了便捷的Walk方法,它能自动的扫描子目录,使用起来也很简单
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
var files []string
root := "/some/folder/to/scan"
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
files = append(files, path)
return nil
})
if err != nil {
panic(err)
}
for _, file := range files {
fmt.Println(file)
}
}
filepath.Walk 接受一个string指向根目录(root),和一个带有签名(signature)的函数类型WalkFunc
type WalkFunc func(path string, info os.FileInfo, err error) error
这个方法将会文件夹扫描的每一次遍历中被调用。
可以看到另一个变量info的类型是os.FileInfo,这个变量非
本文介绍了Go语言中遍历目录获取文件列表的三种方法:使用filepath.Walk,它会递归扫描子目录;使用ioutil.ReadDir,只读取指定目录的文件;以及使用os.File.Readdir,不进行排序地读取目录文件。文章还讨论了如何筛选和处理特定类型的文件。
订阅专栏 解锁全文

4565

被折叠的 条评论
为什么被折叠?



