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

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

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

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

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

具體示例代碼如下:

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

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

//獲取指定目錄下的所有文件,不進入下一級目錄搜索,可以匹配后綴過濾。
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) //忽略后綴匹配的大小寫

 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
}

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

 err = filepath.Walk(dirPth, func(filename string, fi os.FileInfo, err error) error { //遍歷目錄
  //if err != nil { //忽略錯誤
  // 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)
}

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

相關(guān)文章

  • golang中net的tcp服務(wù)使用

    golang中net的tcp服務(wù)使用

    這篇文章主要介紹了golang中net的tcp服務(wù)使用,文章通過服務(wù)端監(jiān)聽端口 展開主題的詳細內(nèi)容,具有一定的參考價值,需要的 小伙伴可以參考一下
    2022-04-04
  • golang?pprof?監(jiān)控系列?go?trace統(tǒng)計原理與使用解析

    golang?pprof?監(jiān)控系列?go?trace統(tǒng)計原理與使用解析

    這篇文章主要為大家介紹了golang?pprof?監(jiān)控系列?go?trace統(tǒng)計原理與使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 一文帶你讀懂Golang?sync包之sync.Mutex

    一文帶你讀懂Golang?sync包之sync.Mutex

    sync.Mutex可以說是sync包的核心了,?sync.RWMutex,?sync.WaitGroup...都依賴于他,?本章我們將帶你一文讀懂sync.Mutex,快跟隨小編一起學(xué)習(xí)一下吧
    2023-04-04
  • Sublime Text3安裝Go語言相關(guān)插件gosublime時搜不到gosublime的解決方法

    Sublime Text3安裝Go語言相關(guān)插件gosublime時搜不到gosublime的解決方法

    本文主要介紹了Sublime Text3安裝Go語言相關(guān)插件gosublime時搜不到gosublime的解決方法,具有一定的參考價值,感興趣的可以了解一下
    2022-01-01
  • go責(zé)任鏈行為型設(shè)計模式Chain?Of?Responsibility

    go責(zé)任鏈行為型設(shè)計模式Chain?Of?Responsibility

    這篇文章主要為大家介紹了go行為型設(shè)計模式之責(zé)任鏈Chain?Of?Responsibility使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • golang使用信號量熱更新的實現(xiàn)示例

    golang使用信號量熱更新的實現(xiàn)示例

    這篇文章主要介紹了golang使用信號量熱更新的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • go goroutine 怎樣進行錯誤處理

    go goroutine 怎樣進行錯誤處理

    在 Go 語言程序開發(fā)中,goroutine 的使用是比較頻繁的,因此在日常編碼的時候 goroutine 里的錯誤處理,怎么做會比較好呢,本文就來詳細介紹一下
    2021-07-07
  • RabbitMq如何做到消息的可靠性投遞

    RabbitMq如何做到消息的可靠性投遞

    現(xiàn)在的一些互聯(lián)網(wǎng)項目或者是高并發(fā)的項目中很少有沒有引入消息隊列的。 引入消息隊列可以給這個項目帶來很多的好處,這篇文章主要為大家介紹了RabbitMq如何做到消息的可靠性投遞,有需要的朋友可以借鑒參考下
    2022-12-12
  • GoLang RabbitMQ實現(xiàn)六種工作模式示例

    GoLang RabbitMQ實現(xiàn)六種工作模式示例

    這篇文章主要介紹了GoLang RabbitMQ實現(xiàn)六種工作模式,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • k8s容器互聯(lián)flannel?vxlan通信原理

    k8s容器互聯(lián)flannel?vxlan通信原理

    這篇文章主要為大家介紹了k8s容器互聯(lián)flannel?vxlan通信原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04

最新評論

上虞市| 江门市| 娄烦县| 包头市| 清镇市| 巩义市| 卢湾区| 阳西县| 水城县| 合水县| 彩票| 乌鲁木齐县| 溆浦县| 新巴尔虎右旗| 温宿县| 抚顺市| 瓮安县| 衢州市| 普宁市| 达拉特旗| 凤翔县| 石景山区| 鹰潭市| 威远县| 万源市| 青海省| 平顶山市| 枣庄市| 正安县| 黔西县| 鹤山市| 那坡县| 滨州市| 田林县| 洛宁县| 凤阳县| 廊坊市| 和田县| 日喀则市| 乐至县| 枣庄市|