最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

golang扫描目录下的所有文件

Golang 1025浏览 0评论

使用path/filepath库的Walk函数可以很好的处理这个问题。

Walk函数原型

func Walk(root string, walkFn WalkFunc) error

walkFn是一个WalkFunc函数类型的参数,也就说第二个参数要传递函数进去,函数的原型如下。

WalkFunc原型

type WalkFunc func(path string, info os.FileInfo, err error) error

解释一下参数

  • path:表示文件的路径
  • info:表示文件的信息,同os.File.Stat()返回的对象一致
  • err:错误信息

下面演示一下,目录如下:

golang扫描目录结构

golang扫描目录结构

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    filepath.Walk("./",
        func(path string, f os.FileInfo, err error) error {
            if f == nil {
                return err
            }
            if f.IsDir() {
                fmt.Println("dir:", path)
                return nil
            }
            fmt.Println("file:", path)
            return nil
        })
    // output:
    //    dir: ./
    //    dir: 2016
    //    dir: 2016/04
    //    dir: 2016/04/11
    //    dir: 2016/04/12
    //    file: 2016/04/12/1.log
    //    file: recursion.go
}

转载请注明:快乐编程 » golang扫描目录下的所有文件

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址