利用Go语言遍历目录下所有文件的示例代码
目录
- 案例目标
- 应用场景
- 涉及知识点
- 示javascript例代码:递归遍历目录下所有文件
- 示例目录结构
- 执行输出示例
- 技术说明
- 拓展示例:只打印特定类型文件
- 小结
案例目标
使用 Go 语言遍历指定目录,递归地列出该目录及其所有子目录下的所有文件路径。
应用场景
- • 文件备份、文件管理工具开发
- • 查找某种类型的文件(如
.jpg
,.txwww.devze.comt
) - • 批量处理目录下文件,如格式转换或分析
涉及知识点
- • 使用
filepath.WalkDir()
遍历目录结构 - • 判断文件类型(文件或文件夹)
- • 获取文件相对/绝对路径
- • 错误处理
示例代码:递归遍历目录下所有文件
package main import ( "fmt" "io/fs" "path/filepath" ) func main() { root := "./testfiles" // 要遍历的目录 编程 err := filepath.WalkDir(root, func(path string, d fs.DirEntry, err error) error { if err != nil { fmt.Println("访问出错:", err) return err } // 判断是否为文件 if !d.IsDir() { fmt.Println("文件:", path) } return nil }) if err != nil { fmt.Println("遍历失败:", err) } }
示例目录结构
testfiles/ ├── a.txt ├── b.jpg ├── docs/ │ ├── c.pdf │ └── d.docx
执行输出示例
文件: testfiles/a.txt 文件: testfiles/b.jpg 文件: testfiles/docs/c.pdf 文件: testfiles/docs/d.docx
技术说明
函数 | 作用 |
---|---|
filepath.WalkDir() | 遍历目录树 |
fs.DirEntry | 提供文python件信息结构 |
d.IsDir() | 判断是否是文件夹 |
path | 每个文件或文件夹的完整路径 |
拓展示例:只打印特定类型文件
if !d.IsDir() && filepath.Ext(path) == ".txt" { fmt.Println("TXT 文件:", path) }
小结
本案例帮助你学会了如何在 Go 中递归遍历整个文php件目录结构。filepath.WalkDir
是处理目录树的利器,适用于各种需要深入访问文件系统的实际开发任务。
以上就是利用Go语言遍历目录下所有文件的示例代码的详细内容,更多关于Go遍历目录下所有文件的资料请关注编程客栈(www.devze.com)其它相关文章!
精彩评论