• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > Go语言扫描目录并获取相关信息的方法

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了go语言方法,go语言,go语言环境搭建,go语言程序设计,let it go 25种语言等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

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

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 )
    }
}</div>

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

</div>

您可能想查找下面的文章:

  • Go语言编程中字符串切割方法小结
  • Go语言中字符串的查找方法小结
  • go语言获取系统盘符的方法
  • go语言使用scp的方法实例分析
  • go语言使用RC4加密的方法
  • Go语言单链表实现方法
  • go语言中时间戳格式化的方法
  • go语言操作redis连接池的方法
  • go语言检测文件是否存在的方法
  • Go语言生成素数的方法

相关文章

  • 剖析Go编写的Socket服务器模块解耦及基础模块的设计
  • 浅析Go语言中的Range关键字
  • go语言获取系统盘符的方法
  • 举例讲解Go语言中函数的闭包使用
  • Fedora14 Linux系统安装Golang开发环境笔记
  • 在Mac中搭建go语言开发环境的操作步骤
  • Go语言通过http抓取网页的方法
  • go语言对文件按照指定块大小进行分割的方法
  • go语言操作redis连接池的方法
  • Go语言实现的最简单数独解法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • 学习GO编程必备知识汇总
    • Golang算法之田忌赛马问题实现方法分析
    • go语言制作的zip压缩程序
    • Go语言实现的树形结构数据比较算法实例
    • golang的HTTP基本认证机制实例详解
    • 简单讲解Go程序中使用MySQL的方法
    • 深入解析golang编程中函数的用法
    • 深入解析快速排序算法的原理及其Go语言版实现
    • golang针对map的判断,删除操作示例
    • Golang正整数指定规则排序算法问题分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有