开发者

利用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)其它相关文章!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新开发

开发排行榜