文章目录
目录
- 案例目标
- 应用场景
- 涉及知识点
- 示例代码:递归遍历目录下所有文件
- 示例目录结构
- 执行输出示例
- 技术说明
- 拓展示例:只打印特定类型文件
- 小结
使用 Go 语言遍历指定目录,递归地列出该目录及其所有子目录下的所有文件路径。
- • 文件备份、文件管理工具开发
- • 查找某种类型的文件(如
.jpg, .txt)
- • 批量处理目录下文件,如格式转换或分析
.jpg, .txt)
- • 使用
filepath.WalkDir() 遍历目录结构
- • 判断文件类型(文件或文件夹)
- • 获取文件相对/绝对路径
- • 错误处理
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 | 提供文件信息结构 |
| d.IsDir() | 判断是否是文件夹 |
| path | 每个文件或文件夹的完整路径 |
if !d.IsDir() && filepath.Ext(path) == ".txt" {
fmt.Println("TXT 文件:", path)
}
本案例帮助你学会了如何在 Go 中递归遍历整个文件目录结构。filepath.WalkDir 是处理目录树的利器,适用于各种需要深入访问文件系统的实际开发任务。
以上就是利用Go语言遍历目录下所有文件的示例代码的详细内容,更多关于Go遍历目录下所有文件的资料请关注风君子博客其它相关文章!
您可能感兴趣的文章:
- Go语言实现遍历文件夹
- go语言遍历文件夹示例
- golang遍历处理map时的常见性能陷阱与解决方法
- Go语言遍历循环的几种方法
- 详解Go语言中如何高效遍历目录