最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年03月02日 12:03:25   作者:兩把刷子  
這篇文章主要介紹了Go語言掃描目錄并獲取相關(guān)信息的方法,實例分析了Go語言操作目錄及文件的技巧,需要的朋友可以參考下

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

前言:最近看到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語言程序設(shè)計有所幫助。

相關(guān)文章

  • Go學習筆記之Zap日志的使用

    Go學習筆記之Zap日志的使用

    這篇文章主要為大家詳細介紹了Go語言中Zap日志的使用以及安裝,文中的示例代碼講解詳細,對我們學習Go語言有一定的幫助,需要的可以參考一下
    2022-07-07
  • 一文了解Go語言中編碼規(guī)范的使用

    一文了解Go語言中編碼規(guī)范的使用

    這篇文章主要介紹了一文了解Go語言中編碼規(guī)范的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • golang?JSON技巧小結(jié)

    golang?JSON技巧小結(jié)

    本文介紹了在Go語言中使用JSON時的一些小技巧,包括如何將字符串轉(zhuǎn)換為數(shù)字、臨時忽略空字段、臨時添加額外字段、粘合兩個struct、改名struct字段、支持不同類型的數(shù)字,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 簡單講解Go程序中使用MySQL的方法

    簡單講解Go程序中使用MySQL的方法

    這篇文章主要介紹了Go程序中使用MySQL的方法,需要使用第三方包來進行連接,需要的朋友可以參考下
    2015-10-10
  • 使用Go+GoQuery庫實現(xiàn)頭條新聞采集

    使用Go+GoQuery庫實現(xiàn)頭條新聞采集

    在本文中,我們將介紹如何使用Go語言和GoQuery庫實現(xiàn)一個簡單的爬蟲程序,用于抓取頭條新聞的網(wǎng)頁內(nèi)容,我們還將使用爬蟲代理服務,提高爬蟲程序的性能和安全性,我們將使用多線程技術(shù),提高采集效率,最后,我們將展示爬蟲程序的運行結(jié)果和代碼,需要的朋友可以參考下
    2023-10-10
  • Go操作redis與redigo的示例解析

    Go操作redis與redigo的示例解析

    這篇文章主要為大家介紹了Go操作redis與redigo的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • go語言學習之包和變量詳解

    go語言學習之包和變量詳解

    這篇文章主要給大家愛介紹了關(guān)于go語言學習之包和變量的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用go語言具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • go微服務PolarisMesh源碼解析服務端啟動流程

    go微服務PolarisMesh源碼解析服務端啟動流程

    這篇文章主要為大家介紹了go微服務PolarisMesh源碼解析服務端啟動流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 深入了解Go語言中sync.Pool的使用

    深入了解Go語言中sync.Pool的使用

    本文將介紹?Go?語言中的?sync.Pool并發(fā)原語,包括sync.Pool的基本使用方法、使用注意事項等的內(nèi)容,對我們了解Go語言有一定的幫助,需要的可以參考一下
    2023-04-04
  • Go語言中空白標識符的具體使用

    Go語言中空白標識符的具體使用

    Go語言的空白標識符作為匿名變量,用于占位和忽略多余值,本文主要介紹了Go語言中空白標識符的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06

最新評論

卓尼县| 岢岚县| 平原县| 洛南县| 阿鲁科尔沁旗| 五原县| 大余县| 万州区| 余庆县| 绥江县| 沈阳市| 鄂托克前旗| 山东| 泾阳县| 丰县| 陵川县| 山阳县| 招远市| 永和县| 永新县| 平江县| 苏尼特右旗| 西城区| 诸城市| 鹿泉市| 松滋市| 白河县| 东莞市| 巴彦淖尔市| 中江县| 城步| 平潭县| 谢通门县| 宁津县| 淳化县| 临潭县| 视频| 左云县| 明水县| 奉新县| 济源市|