本文实例讲述了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语言程序设计有所帮助。
本小节介绍如何获取必要的FDS Bucket信息 选择生态云机房 登陆生态网站,点击其右上角,选择生态云机房,如下图所示: **注意:对于数据流相关的操作,需要保证所有的操作都使用上述选择的生态云机房** 进入生态云FDS(即文件存储)页面 进入文件存储页面,如下图所示: 查询FDS Bucket 信息 如下图,在需要导入数据的FDS Bucket属性中查看Bucket信息,包括名称和所有者; 这
通过上一节《 Go语言goroutine》的学习,关键字 go 的引入使得在Go语言中并发编程变得简单而优雅,但我们同时也应该意识到并发编程的原生复杂性,并时刻对并发中容易出现的问题保持警惕。 事实上,不管是什么平台,什么编程语言,不管在哪,并发都是一个大话题。并发编程的难度在于协调,而协调就要通过交流,从这个角度看来,并发单元间的通信是最大的问题。 在工程上,有两种最常见的并发通信模型:共享数据
本文向大家介绍C语言中获取和改变目录的相关函数总结,包括了C语言中获取和改变目录的相关函数总结的使用技巧和注意事项,需要的朋友参考一下 C语言getcwd()函数:取得当前的工作目录 头文件: 定义函数: 函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。 注: 1、在调用此函数时,buf 所指的内存空间要足够大。若工作目录绝
本文向大家介绍GO语言实现的端口扫描器分享,包括了GO语言实现的端口扫描器分享的使用技巧和注意事项,需要的朋友参考一下
本文向大家介绍C#获取进程或线程相关信息的方法,包括了C#获取进程或线程相关信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#获取进程或线程相关信息的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍GO语言实现列出目录和遍历目录的方法,包括了GO语言实现列出目录和遍历目录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了GO语言实现列出目录和遍历目录的方法。分享给大家供大家参考。具体如下: GO语言获取目录列表用 ioutil.ReadDir(),遍历目录用 filepath.Walk(),使用方法课参考本文示例。 具体示例代码如下: 希望本文所述对大家的GO语言程