利用Go语言遍历目录下所有文件的示例代码

Written by

in

文章目录
  • 使用 Go 语言遍历指定目录,递归地列出该目录及其所有子目录下的所有文件路径。
  • • 文件备份、文件管理工具开发 • 查找某种类型的文件(如 .jpg, .txt) • 批量处理目录下文件,如格式转换或分析
  • • 使用 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语言中如何高效遍历目录
  • 目录
    • 案例目标
    • 应用场景
    • 涉及知识点
    • 示例代码:递归遍历目录下所有文件
    • 示例目录结构
    • 执行输出示例
    • 技术说明
    • 拓展示例:只打印特定类型文件
    • 小结

    使用 Go 语言遍历指定目录,递归地列出该目录及其所有子目录下的所有文件路径。

    • • 文件备份、文件管理工具开发
    • • 查找某种类型的文件(如 .jpg.txt
    • • 批量处理目录下文件,如格式转换或分析

    • • 使用 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语言中如何高效遍历目录

    站内搜索