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

首頁 > 編程 > Golang > 正文

GO語言實現列出目錄和遍歷目錄的方法

2020-04-01 19:23:41
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了GO語言實現列出目錄和遍歷目錄的方法,涉及ioutil.ReadDir()與filepath.Walk()的應用,是非常實用的技巧,需要的朋友可以參考下
 

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

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

具體示例代碼如下:

復制代碼代碼如下:
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語言程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣化县| 万荣县| 屯留县| 贡山| 烟台市| 龙胜| 泰来县| 乌拉特后旗| 玛曲县| 平阳县| 莱芜市| 闵行区| 荔波县| 克拉玛依市| 广平县| 蛟河市| 萍乡市| 厦门市| 上高县| 涞源县| 宝兴县| 鄯善县| 应城市| 友谊县| 开平市| 武川县| 阳高县| 青神县| 隆化县| 岳阳市| 无棣县| 定安县| 荥阳市| 鄂伦春自治旗| 延庆县| 剑阁县| 宜都市| 萝北县| 遂宁市| 宾川县| 天门市|