• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Go语言扫描目录并获取相关信息的方法

    本文实例讲述了Go语言扫描目录并获取相关信息的方法。分享给大家供大家参考。具体分析如下:

    前言:最近看到Go里面有一个func很容易就可以扫描整个目录,并且可以得到相应的目录和文件信息,所以我将其进行了封装,拿到file info的所有信息 这样就可以方便的做其它用途了。

    直接上代码,代码基于Go version 1

    复制代码 代码如下:
    package main
    import (
        "path/filepath"
        "os"
        "flag"
        "fmt"
        "time"
    )
    const (
        IsDirectory             = iota
        IsRegular
        IsSymlink
    )
    type sysFile struct { 
        fType       int
        fName       string
        fLink       string
        fSize       int64
        fMtime      time.Time
        fPerm       os.FileMode
    }
    type F struct {
        files []*sysFile
    }
    func (self *F) visit(path string, f os.FileInfo, err error) error {
        if ( f == nil ) {
            return err
        }
        var tp int
        if f.IsDir() {
            tp = IsDirectory
        }else if (  f.Mode() os.ModeSymlink ) > 0 {
            tp = IsSymlink
        }else{
            tp = IsRegular
        }
        inoFile := sysFile{
            fName : path,
            fType : tp,
            fPerm : f.Mode(),
            fMtime: f.ModTime(),
            fSize : f.Size(),
        }
        self.files = append( self.files, inoFile )
        return nil
    }
    func main() {
        flag.Parse()
        root := flag.Arg(0)
        self := F{
            files: make( []*sysFile, 0 ),
        }
        err := filepath.Walk(root, func(path string, f os.FileInfo, err error) error {
            return self.visit(path, f, err)
        })
        if err != nil { 
          fmt.Printf("filepath.Walk() returned %v\n", err)
        }
        for _, v := range self.files {
            fmt.Println( v.fName,v.fSize )
        }
    }

    希望本文所述对大家的Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • Go语言正则表达式用法实例小结【查找、匹配、替换等】
    • Go语言正则表达式示例
    • Go语言编程中判断文件是否存在是创建目录的方法
    • GO语言实现简单的目录复制功能
    • GO语言实现列出目录和遍历目录的方法
    • Go语言的GOPATH与工作目录详解
    • GO语言文件的创建与打开实例分析
    • go语言遍历文件夹示例
    • Go语言文件操作的方法
    • go语言文件正则表达式搜索功能示例
    上一篇:Go语言RPC Authorization进行简单ip安全验证的方法
    下一篇:Go语言获取本机逻辑CPU数量的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Go语言扫描目录并获取相关信息的方法 语言,扫描,目录,并,获取,