GO语言实现列出目录和遍历目录的方法
本文实例讲述了go语言实现列出目录和遍历目录的方法。分享给大家供大家参考。具体如下:
go语言获取目录列表用 ioutil.readdir(),遍历目录用 filepath.walk(),使用方法课参考本文示例。
具体示例代码如下:
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语言程序设计有所帮助。
上一篇: python实现二叉查找数的查找最小值、最大值操作
下一篇: 冒泡排序