国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Golang > 正文

Go語言掃描目錄并獲取相關(guān)信息的方法

2020-04-01 19:17:51
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Go語言掃描目錄并獲取相關(guān)信息的方法,實(shí)例分析了Go語言操作目錄及文件的技巧,需要的朋友可以參考下
 

本文實(shí)例講述了Go語言掃描目錄并獲取相關(guān)信息的方法。分享給大家供大家參考。具體分析如下:

前言:最近看到Go里面有一個(gè)func很容易就可以掃描整個(gè)目錄,并且可以得到相應(yīng)的目錄和文件信息,所以我將其進(jìn)行了封裝,拿到file info的所有信息 這樣就可以方便的做其它用途了。

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

 

復(fù)制代碼代碼如下:
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 )
    }
}

 

希望本文所述對(duì)大家的Go語言程序設(shè)計(jì)有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安塞县| 桐庐县| 青阳县| 乳源| 健康| 高碑店市| 广宗县| 北碚区| 和龙市| 乌拉特前旗| 龙井市| 延津县| 平凉市| 兖州市| 射阳县| 克什克腾旗| 囊谦县| 滦平县| 吐鲁番市| 河曲县| 华池县| 获嘉县| 保德县| 泸溪县| 天津市| 海南省| 喀喇沁旗| 赫章县| 凤城市| 吉水县| 吉木萨尔县| 胶南市| 宜城市| 靖边县| 大港区| 横山县| 禹州市| 孟连| 清远市| 阿鲁科尔沁旗| 大名县|