GO语言实现列出目录和遍历目录的方法
本文实例讲述了GO语言实现列出目录和遍历目录的方法。分享给大家供大家参考。具体如下:
GO语言获取目录列表用ioutil.ReadDir(),遍历目录用filepath.Walk(),使用方法课参考本文示例。
具体示例代码如下:
packagemain
import( "fmt" "io/ioutil" "os" "path/filepath" "strings" )
//获取指定目录下的所有文件,不进入下一级目录搜索,可以匹配后缀过滤。 funcListDir(dirPthstring,suffixstring)(files[]string,errerror){ files=make([]string,0,10)
dir,err:=ioutil.ReadDir(dirPth) iferr!=nil{ returnnil,err }
PthSep:=string(os.PathSeparator) suffix=strings.ToUpper(suffix)//忽略后缀匹配的大小写
for_,fi:=rangedir{ iffi.IsDir(){//忽略目录 continue } ifstrings.HasSuffix(strings.ToUpper(fi.Name()),suffix){//匹配文件 files=append(files,dirPth+PthSep+fi.Name()) } }
returnfiles,nil }
//获取指定目录及所有子目录下的所有文件,可以匹配后缀过滤。 funcWalkDir(dirPth,suffixstring)(files[]string,errerror){ files=make([]string,0,30) suffix=strings.ToUpper(suffix)//忽略后缀匹配的大小写
err=filepath.Walk(dirPth,func(filenamestring,fios.FileInfo,errerror)error{//遍历目录 //iferr!=nil{//忽略错误 // returnerr //}
iffi.IsDir(){//忽略目录 returnnil }
ifstrings.HasSuffix(strings.ToUpper(fi.Name()),suffix){ files=append(files,filename) }
returnnil })
returnfiles,err }
funcmain(){ files,err:=ListDir("D:\\Go",".txt") fmt.Println(files,err)
files,err=WalkDir("E:\\Study",".pdf") fmt.Println(files,err) }