Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Go遍历目录下所有文件

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

作者:程序员爱钓鱼

这篇文章主要介绍了如何使用 Go 语言遍历指定目录,递归地列出该目录及其所有子目录下的所有文件路径,并有详细的代码示例供大家参考,需要的朋友可以参考下

案例目标

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

应用场景

涉及知识点

示例代码:递归遍历目录下所有文件

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遍历目录下所有文件的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文