欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

GO語(yǔ)言實(shí)現(xiàn)列出目錄和遍歷目錄的方法

 更新時(shí)間:2014年12月03日 14:59:35   投稿:shichen2014  
這篇文章主要介紹了GO語(yǔ)言實(shí)現(xiàn)列出目錄和遍歷目錄的方法,涉及ioutil.ReadDir()與filepath.Walk()的應(yīng)用,是非常實(shí)用的技巧,需要的朋友可以參考下

本文實(shí)例講述了GO語(yǔ)言實(shí)現(xiàn)列出目錄和遍歷目錄的方法。分享給大家供大家參考。具體如下:

GO語(yǔ)言獲取目錄列表用 ioutil.ReadDir(),遍歷目錄用 filepath.Walk(),使用方法課參考本文示例。

具體示例代碼如下:

復(fù)制代碼 代碼如下:
package main

import (
 "fmt"
 "io/ioutil"
 "os"
 "path/filepath"
 "strings"
)

//獲取指定目錄下的所有文件,不進(jìn)入下一級(jí)目錄搜索,可以匹配后綴過(guò)濾。
func ListDir(dirPth string, suffix string) (files []string, err error) {
 files = make([]string, 0, 10)

 dir, err := ioutil.ReadDir(dirPth)
 if err != nil {
  return nil, err
 }

 PthSep := string(os.PathSeparator)
 suffix = strings.ToUpper(suffix) //忽略后綴匹配的大小寫(xiě)

 for _, fi := range dir {
  if fi.IsDir() { // 忽略目錄
   continue
  }
  if strings.HasSuffix(strings.ToUpper(fi.Name()), suffix) { //匹配文件
   files = append(files, dirPth+PthSep+fi.Name())
  }
 }

 return files, nil
}

//獲取指定目錄及所有子目錄下的所有文件,可以匹配后綴過(guò)濾。
func WalkDir(dirPth, suffix string) (files []string, err error) {
 files = make([]string, 0, 30)
 suffix = strings.ToUpper(suffix) //忽略后綴匹配的大小寫(xiě)

 err = filepath.Walk(dirPth, func(filename string, fi os.FileInfo, err error) error { //遍歷目錄
  //if err != nil { //忽略錯(cuò)誤
  // return err
  //}

  if fi.IsDir() { // 忽略目錄
   return nil
  }

  if strings.HasSuffix(strings.ToUpper(fi.Name()), suffix) {
   files = append(files, filename)
  }

  return nil
 })

 return files, err
}

func main() {
 files, err := ListDir("D:\\Go", ".txt")
 fmt.Println(files, err)

 files, err = WalkDir("E:\\Study", ".pdf")
 fmt.Println(files, err)
}

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

相關(guān)文章

  • 詳解Go語(yǔ)言中的逃逸分析

    詳解Go語(yǔ)言中的逃逸分析

    逃逸分析是編譯器用于決定將變量分配到棧上還是堆上的一種行為,下面小編就來(lái)為大家詳細(xì)講講go語(yǔ)言中是如何進(jìn)行逃逸分析的,需要的小伙伴可以參考下
    2023-09-09
  • go語(yǔ)言中time包的各種函數(shù)總結(jié)

    go語(yǔ)言中time包的各種函數(shù)總結(jié)

    時(shí)間和日期是我們編程中經(jīng)常會(huì)用到的,下面這篇文章主要給大家介紹了關(guān)于go語(yǔ)言中time包的各種函數(shù)總結(jié)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 一篇文章讀懂Golang?init函數(shù)執(zhí)行順序

    一篇文章讀懂Golang?init函數(shù)執(zhí)行順序

    init()函數(shù)會(huì)在包被初始化后自動(dòng)執(zhí)行,并且在main()函數(shù)之前執(zhí)行,但是需要注意的是init()以及main()函數(shù)都是無(wú)法被顯式調(diào)用的,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章讀懂Golang?init函數(shù)執(zhí)行順序的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Go 每日一庫(kù)之termtables的使用

    Go 每日一庫(kù)之termtables的使用

    本文主要介紹了Go 每日一庫(kù)之termtables的使用,termtables處理表格形式數(shù)據(jù)的輸出。是一個(gè)很小巧的工具庫(kù)。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • golang端口占用檢測(cè)的使用

    golang端口占用檢測(cè)的使用

    這篇文章主要介紹了golang端口占用檢測(cè)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • golang語(yǔ)言http協(xié)議get拼接參數(shù)操作

    golang語(yǔ)言http協(xié)議get拼接參數(shù)操作

    這篇文章主要介紹了golang語(yǔ)言http協(xié)議get拼接參數(shù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go語(yǔ)言中關(guān)于set的實(shí)現(xiàn)思考分析

    Go語(yǔ)言中關(guān)于set的實(shí)現(xiàn)思考分析

    Go?開(kāi)發(fā)過(guò)程中有時(shí)我們需要集合(set)這種容器,但?Go?本身未內(nèi)置這種數(shù)據(jù)容器,故常常我們需要自己實(shí)現(xiàn),下面我們就來(lái)看看具體有哪些實(shí)現(xiàn)方法吧
    2024-01-01
  • 重學(xué)Go語(yǔ)言之基礎(chǔ)數(shù)據(jù)類型詳解

    重學(xué)Go語(yǔ)言之基礎(chǔ)數(shù)據(jù)類型詳解

    Go語(yǔ)言有非常強(qiáng)大的數(shù)據(jù)類型系統(tǒng),其支持的數(shù)據(jù)類型大體上可分為四類:基礎(chǔ)數(shù)據(jù)類型、引用數(shù)據(jù)類型、接口類型、復(fù)合類型。本文就來(lái)講講它們各自的用法吧
    2023-02-02
  • Go語(yǔ)言學(xué)習(xí)教程之goroutine和通道的示例詳解

    Go語(yǔ)言學(xué)習(xí)教程之goroutine和通道的示例詳解

    這篇文章主要通過(guò)A?Tour?of?Go中的例子進(jìn)行學(xué)習(xí),以此了解Go語(yǔ)言中的goroutine和通道,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-09-09
  • golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例

    golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例

    這篇文章主要為大家介紹了golang操作連接數(shù)據(jù)庫(kù)實(shí)現(xiàn)mysql事務(wù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04

最新評(píng)論